2012-07-28 211 views
2

我使用watir-webdriver并尝试查找元素的位置,如$browser.div(:id, "foo")。当我尝试点击它,在chromedriver说获取元素的位置/位置

元件没有以点点击(-1707,-799.5)

怎么可能得到这个坐标的元素?我尝试这样做:

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

,但我得到一个错误,当我试着拨打document()方法。

+0

无效链接,但存档在http://web.archive.org/web/20130516055542/http:/ /wiki.openqa.org/display/WTR/Right+Click+an+Element – 2016-01-29 23:17:24

回答

8

我假设你使用的是Watir-Webdriver,因为你使用的是Chromedriver。你引用的文章实际上是Watir,它并不总是与Watir-Webdriver一样。

对于Watir-Webdriver,您可以通过直接调用webdriver方法来获取元素位置。

试试这个:

location = browser.element(:id, 'id').wd.location 
puts "location x = #{location[0]}" 
puts "location y = #{location[1]}" 
1

我觉得那个位置(.wd.location)是一个相对位置,这是浏览器页面的范围内,而不是系统屏幕上的绝对位置。

说,它会得到(700,300),因为您的浏览器是最大化。但它得到(500,200),因为您的浏览器被移动....

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