【问题标题】:Get location/position of an element获取元素的位置/位置
【发布时间】:2018-03-27 12:08:21
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: ruby watir


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      相关资源
      最近更新 更多