2

watir-webdriver を使用して、 のような要素の位置を見つけようとします$browser.div(:id, "foo")。それをクリックしようとすると、chromedriverは言う

要素はポイントでクリックできません(-1707、-799.5)

要素のこの座標を取得するにはどうすればよいですか? 私はこれを試しました:

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

document()しかし、メソッドを呼び出そうとするとエラーが発生します。

4

2 に答える 2

10

Chromedriver を使用しているため、Watir-Webdriver を使用していると思います。あなたが参照している記事は、実際には 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]}"
于 2012-07-30T13:45:54.300 に答える
1

場所 (.wd.location) は、システム画面の絶対的な場所ではなく、ブラウザのページ範囲内にある相対的な場所だと思います。

たとえば、ブラウザを最大化すると (700, 300) になります。しかし、ブラウザが移動すると (500,200) になります....

ボタンの「wd.location」を取得し、Autoit「autoit.MouseClick("left", x, y)」からマウスクリック イベントを送信しました。マウスがボタンから外れていることがわかりました。それを修正するにはオフセットを追加する必要がありますが、実際の問題は、ブラウザの場所によってオフセットが変化することです...

于 2014-01-23T07:22:23.833 に答える