阅读here,显然曾经是RenderedWebElement
类,hover
方法。但是,它专门用于Java(我搜索过的Python绑定文档无济于事),因此已被弃用于Java。
使用action_chains
也无法使用WebElement
对象执行hover
。
有关如何为Python执行此操作的任何想法?我一直here但它使用RenderedWebElement
,因此没有太多帮助。
我正在使用:Python 2.7,Windows Vista,Selenium 2,Python Bindings
编辑: mouse_over
对象有一个方法selenium.selenium.selenium
,但是如果没有独立服务器运行,我就无法想办法创建实例。< / p>
答案 0 :(得分:70)
要进行悬停,您需要使用move_to_element
方法。
这是一个例子
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
firefox = webdriver.Firefox()
firefox.get('http://foo.bar')
element_to_hover_over = firefox.find_element_by_id("baz")
hover = ActionChains(firefox).move_to_element(element_to_hover_over)
hover.perform()
答案 1 :(得分:2)
@AutomatedTester为社区提供了一个很好的解决方案!
下面是我的用法。
我使用信号来正确退出phantomJS,因为它有时在当前进程中挂起。
我更喜欢使用find_element_by_xpath,因为可以在chrome中轻松找到xpath。
方法如下: 右键单击->检查->右键单击->复制-> CopyXpath
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import signal
browser = webdriver.PhantomJS()
browser.implicitly_wait(3)
def hover(browser, xpath):
element_to_hover_over = browser.find_element_by_xpath(xpath)
hover = ActionChains(browser).move_to_element(element_to_hover_over)
hover.perform()
browser.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
browser.quit()