2012-07-28 254 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)」。我發現鼠標不在按鈕中。 我必須添加一個偏移來解決它,但真正的問題是偏移量隨我的瀏覽器位置而變化...