SeleniumのPython版を使用すると、DOM内のいくつかの要素をクリックして、クリックしたい座標を指定することは可能ですか? JavaバージョンにはclickAt
というメソッドがありますが、これは実際に私が探しているものですが、Pythonではこれを見つけることができません。セレン - 特定の位置でクリック
11
A
答えて
1
私は個人的にこの方法を使用していませんでしたが、selenium.py
のソースコードを見ている私は、彼らはあなたがやりたいだろうように見え、次の方法見つけた - 彼らはclickAt
をラップするために見て:
def click_at(self,locator,coordString):
"""
Clicks on a link, button, checkbox or radio button. If the click action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("clickAt", [locator,coordString,])
def double_click_at(self,locator,coordString):
"""
Doubleclicks on a link, button, checkbox or radio button. If the action
causes a new page to load (like a link usually does), call
waitForPageToLoad.
'locator' is an element locator
'coordString' is specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
"""
self.do_command("doubleClickAt", [locator,coordString,])
を
これらはセレンオブジェクトに表示され、ここにはonline API documentationがあります。
4
あなたが混乱している理由は、clickAt
は古いv1(Selenium RC)メソッドです。
WebDriverの概念は少し異なり、'Actions'です。
具体的には、Pythonバインディング用の「アクション」ビルダーは、ライブhereです。
clickAt
コマンドの考え方は、特定の要素の特定の位置相対でクリックすることです。
「アクション」ビルダーを使用してWebDriverでも同じことが達成できます。
うまくいけば、これはupdated documentationが役に立ちます。
22
これはすべきです!つまり、webdriverのアクションチェーンを使用する必要があります。一度インスタンスを作成したら、一連のアクションを登録してから、perform()
を呼び出して実行してください。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com")
el=driver.find_elements_by_xpath("//button[contains(string(), 'Lucky')]")[0]
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(el, 5, 5)
action.click()
action.perform()
これは右の私はラッキーだと思うボタンの左上隅からマウスダウン5つのピクセルと5つのピクセルずつ移動します。その後、それはclick()
になります。
はを使用する必要があります。perform()
です。それ以外は何も起こりません。
関連する問題
- 1. UIView renderInContex特定の位置
- 2. ギャラリー位置を特定の画像位置でロードする
- 3. TextBoxでのキャレットの位置の特定
- 4. 特定のインデックスでスワップdivの位置
- 5. python、セレンで特定のボタンを探してクリックする
- 6. GridView(WPF)でクリックされたコントロールの位置を特定します。
- 7. 特定のサイズと位置のソリッドボール
- 8. スクロール - jqueryの - 特定の位置
- 9. 特定の位置にスクロールするヘッダーフィックス
- 10. openGL 2Dマウスのクリック位置
- 11. ブラウザでのクリック位置のマッピング
- 12. iOS5のモバイルSafariでクリック可能な固定位置navbar
- 13. テキストエリアの特定の行の特定の位置にカーソルを設定します
- 14. Pythonでの特定の配列位置の選択
- 15. JPanel上の特定の位置にJButtonを設定する
- 16. Jquery - オーバーフローでdivの特定の位置にスライド:hidden
- 17. デフォルトのブラウザで特定の位置にdelphiを開く
- 18. pythonの特定の位置でオーディオファイルを再生する
- 19. leaflet.js - クリック時のマーカの設定、ドラッグ時の位置の更新
- 20. 文字列を特定の位置に設定します
- 21. VideoViewを特定の位置にシークできない - Android
- 22. サブビューを追加して特定の位置で表示する
- 23. Numpy:特定の配列位置で式を計算する
- 24. 特定のブラウザで奇妙な位置付け
- 25. 特定の位置でUIScrollViewを停止する
- 26. Chromeでの位置固定
- 27. インターネットエクスプローラでの位置固定
- 28. セレン1クリックでスパン発行
- 29. マウスクリックの位置での位置を決定する
- 30. Androidのクリック位置を検出する
素晴らしい!彼らはどのクラスに属していますか? – davids
彼らはセレンのオブジェクトに入っています。私は実際にAPIドキュメントをオンラインで見つけました。答えを更新しています。 – Ewan
もう一度質問します。どのように実際にこれを使用していますか?私はwebdriversオブジェクトで作業するのに慣れていますが、これを使用したことはありません – davids