我的页面上有一个canvas元素,我想单击此画布中的特定(x,y)坐标。我使用watir-webdriver:
element = browser.driver.find_element(:id, 'canvas') browser.driver.action.move_to(element).move_by(x, y).click().perform
但是此代码仅单击画布的中心,而不单击指定的(x,y)坐标。怎么了
UPD:所以现在我使用以下代码:
element = browser.driver.find_element(:id, 'canvas') browser.driver.action.move_to(element, x, y).perform browser.driver.click.perform
但是它仍然单击画布的中心,而不单击指定的(x,y)坐标…有什么想法吗?
UPD 2:这仅是FIREFOX问题(在Chrome中运行良好)
move_to(element)移动到指定元素的中心,并且move_by是相对移动。因此,在这两个操作结束时,您已移至坐标(x of element center + x, y of element center + y)。
move_to(element)
move_by
(x of element center + x, y of element center + y)
您应该使用move_to(element, x, y)。这将移动到x, y相对于元素原点的坐标。
move_to(element, x, y)
x, y
相关文件。
您是否正在使用Selenium和Firefox的Selenium支持本机事件的版本?Selenium 2.37与Firefox 24的结合确实可以。我有测试套件失败的原因仅在于本地事件不可用。