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. JavaScriptを開いて特定の位置でマウスをクリック
- 2. セレンの位置入力(Angular.JS)
- 3. UIView renderInContex特定の位置
- 4. クリックするとウィンドウ上部から特定の位置にスクロール
- 5. ギャラリー位置を特定の画像位置でロードする
- 6. TextBoxでのキャレットの位置の特定
- 7. 特定のインデックスでスワップdivの位置
- 8. 固定位置の特定のdivが
- 9. 特定のx値の位置にあるJpgraph位置のテキスト
- 10. *と*位置データフレーム内の特定の位置に新しい列
- 11. 特定のdivまたは特定の位置で固定位置を停止する
- 12. セレンは特定のチェックボックスをクリックできません
- 13. python、セレンで特定のボタンを探してクリックする
- 14. GridView(WPF)でクリックされたコントロールの位置を特定します。
- 15. セレンの上の位置へのマウスポインタ
- 16. Ocamlバッファー修正の特定の位置
- 17. 特定のサイズと位置のソリッドボール
- 18. スクロール - jqueryの - 特定の位置
- 19. 特定の位置からのサブストリング
- 20. Xamarin.Forms特定の位置のListView
- 21. ファイルの特定位置のfs.createReadStream()
- 22. リストに特定の位置に挿入
- 23. 特定の位置にスクロールするヘッダーフィックス
- 24. RadListView - 特定のy位置にスクロール
- 25. 特定のバイト位置でcharを置き換えるsedコマンド
- 26. セレンの特定のリンクをクリックしたい場合
- 27. openGL 2Dマウスのクリック位置
- 28. Rマトリクスプロットの位置をクリック
- 29. ブラウザでのクリック位置のマッピング
- 30. iOS5のモバイルSafariでクリック可能な固定位置navbar
素晴らしい!彼らはどのクラスに属していますか? – davids
彼らはセレンのオブジェクトに入っています。私は実際にAPIドキュメントをオンラインで見つけました。答えを更新しています。 – Ewan
もう一度質問します。どのように実際にこれを使用していますか?私はwebdriversオブジェクトで作業するのに慣れていますが、これを使用したことはありません – davids