获取元素的位置/位置

时间:2012-07-28 15:57:22

标签: ruby watir

我使用watir-webdriver并尝试找到像$browser.div(:id, "foo")这样的元素的位置。当我试图点击它时,chromedriver说

  

元素在点(-1707,-799.5)

时无法点击

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

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

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

2 个答案:

答案 0 :(得分:9)

我假设您正在使用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]}"

答案 1 :(得分:1)

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

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

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