无法理解python selenium webdriver的move_to_element功能
我查看了很多例子和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确实返回了正确的元素,并且给它分配了一些{唯一id})。我的Python技能还很基础,但我需要调整我正在做的测试脚本。我确信我只是没有理解这个错误。
谢谢你的帮助!
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()