2

我使用 watir-webdriver 并尝试找到像$browser.div(:id, "foo"). 当我尝试点击它时,chromedriver 说

元素在点不可点击(-1707,-799.5)

如何获得元素的这个坐标?我试过这个:

http://wiki.openqa.org/display/WTR/Right+Click+an+Element

但是当我尝试调用该document()方法时出现错误。

4

2 回答 2

10

我假设您使用的是 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]}"
于 2012-07-30T13:45:54.300 回答
1

我认为位置(.wd.location)是浏览器页面范围内的相对位置,而不是系统屏幕的绝对位置。

比如说,当您的浏览器最大化时,它会得到 (700, 300)。但随着您的浏览器移动,它会得到 (500,200)....

我得到了一个按钮的“wd.location”,然后从 Autoit“autoit.MouseClick("left", x, y)" 发送了一个鼠标单击事件。我发现鼠标不在按钮上了。我必须添加一个偏移量来修复它,但真正的问题是偏移量会随着我的浏览器位置而变化......

于 2014-01-23T07:22:23.833 回答