2012-01-12 46 views
9

Python WebDriverバインディングでドラッグアンドドロップ操作ができません。私はMac OS X上でGoogle ChromeとFirefoxを使って作業しています。同様の問題があったスレッドhereがあります。Python Selenium WebDriverドラッグアンドドロップ

私はActionsChainsを使用して試してみました:

from selenium import webdriver 
from selenium.webdriver import ActionChains 
driver = webdriver.Chrome() 
actionChains = ActionChains(driver) 

actionChains.drag_and_drop(source, target).perform() 

あなたはPythonのwebdriverをドラッグ・アンド・ドロップの作業を取得するために管理していますか?

+0

あなたが持っている具体的な問題に言及している場合には役立つかもしれません。 – Marcin

+0

@Marcin:ありがとう。私は質問を更新しました。私は 'source'を' target'にドラッグしようとしています。私はいくつかのコードを投稿しました。 – Randomblue

+0

'source'や' target'に問題があるかもしれません。多分それらも表示されますか? – Marcin

答えて

7

更新された回答を得るために、私はこれが実際にMacで動作することを確認しました。

from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains 

driver = webdriver.Firefox() 
driver.get("your.site.with.dragndrop.functionality.com") 
source_element = driver.find_element_by_name('your element to drag') 
dest_element = driver.find_element_by_name('element to drag to') 
ActionChains(driver).drag_and_drop(source_element, dest_element).perform() 

Reference

0

ソースとターゲットのサンプルHTMLがないと正確に言うのは難しいです。

drag_and_drop_by_offset(self, source, xoffset, yoffset)の代わりに、オフセットパラメータの値を小さくして試してみることもできます。時にはそれが動作します。

mouse_down_at,mouse_move_atおよびmouse_up_atを代わりに使用するthis C# exampleを試してみることもできます。

4

アクションチェーンは現在Macでは動作しません。上記のコードをLinuxやWindowsで試してみたら、うまくいくはずです。 ChromeDriverはこの権利を得ることに近いですが、まだAFAIKの作業が必要です。

+0

ありがとうございます。あなたはこれの時間枠を知っていますか? – Randomblue

+0

残念ながら、私は時間枠を知らない。多くの人々が何を見て近づくのを試みましたが、リリースする前に他のプラットフォームと同じレベルにする必要があります – AutomatedTester

関連する問題