4

多くの例と ActionChains のソース コードを調べたところ、他の例で提案されているホバー機能のコードを使用しているように見えますが、それでもこの例外を乗り越えることができません。コードは次のとおりです。

menu = browser.find_element_by_xpath("//nav/ul/li/a[@href='#'][.='Profile']")
hover = ActionChains(webdriver).move_to_element(menu)
hover.perform()

例外は次のとおりです。

Traceback (most recent call last):
File "./test.py", line 56, in <module>
hov.perform()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 44, in perform
action()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 201, in <lambda>
self._driver.execute(Command.MOVE_TO, {'element': to_element.id}))
AttributeError: 'module' object has no attribute 'execute'

最初は、要素に id 属性がないために機能していないと思っていましたが、そうではないことを確認しました (find_element_by_xpath は正しい要素を返し、何らかの {unique id} が割り当てられています)。私の Python スキルは非常に初歩的ですが、作業中のテスト スクリプトを調整する必要があります。私はこのエラーを理解していないと確信しています。

ご協力いただきありがとうございます!

4

1 に答える 1

8

の最初の引数ActionChainsは、ブラウザーを制御するために使用するドライバー インスタンスです。つまりbrowser、この場合です。次のことを試してください。

menu = browser.find_element_by_xpath("//nav/ul/li/a[@href='#'][.='Profile']")
hover = ActionChains(browser).move_to_element(menu)
hover.perform()
于 2013-03-07T21:21:27.583 に答える