我使用 watir-webdriver 并尝试找到像$browser.div(:id, "foo")
. 当我尝试点击它时,chromedriver 说
元素在点不可点击(-1707,-799.5)
如何获得元素的这个坐标?我试过这个:
http://wiki.openqa.org/display/WTR/Right+Click+an+Element
但是当我尝试调用该document()
方法时出现错误。
我使用 watir-webdriver 并尝试找到像$browser.div(:id, "foo")
. 当我尝试点击它时,chromedriver 说
元素在点不可点击(-1707,-799.5)
如何获得元素的这个坐标?我试过这个:
http://wiki.openqa.org/display/WTR/Right+Click+an+Element
但是当我尝试调用该document()
方法时出现错误。
我假设您使用的是 Watir-Webdriver,因为您使用的是 Chromedriver。你参考的文章其实是针对Watir的,和Watir-Webdriver并不总是一样的。
要获取元素的位置,可以使用以下Element#location
方法:
location = browser.element(:id, 'id').location
puts "location x = #{location.x}"
puts "location y = #{location.y}"
请注意,旧版本的 Watir-Webdriver 没有此方法。相反,您需要直接访问底层的 Selenium::WebDriver:
location = browser.element(:id, 'id').wd.location
puts "location x = #{location[0]}"
puts "location y = #{location[1]}"
我认为位置(.wd.location)是浏览器页面范围内的相对位置,而不是系统屏幕的绝对位置。
比如说,当您的浏览器最大化时,它会得到 (700, 300)。但随着您的浏览器移动,它会得到 (500,200)....
我得到了一个按钮的“wd.location”,然后从 Autoit“autoit.MouseClick("left", x, y)" 发送了一个鼠标单击事件。我发现鼠标不在按钮上了。我必须添加一个偏移量来修复它,但真正的问题是偏移量会随着我的浏览器位置而变化......