我使用watir-webdriver并尝试找到像$browser.div(:id, "foo")
这样的元素的位置。当我试图点击它时,chromedriver说
元素在点(-1707,-799.5)
时无法点击
如何获得元素的坐标?我试过这个:
http://wiki.openqa.org/display/WTR/Right+Click+an+Element
但是当我尝试调用document()
方法时出现错误。
答案 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)”发送了鼠标点击事件“。我发现鼠标不在按钮上。 我必须添加一个偏移来修复它,但真正的问题是偏移量随浏览器位置而变化......