是否有一种使用Selenium和Python绑定执行鼠标悬停(悬停在元素上)的方法?
在阅读中,显然曾经有一个是否有一种使用Selenium和Python绑定执行鼠标悬停(悬停在元素上)的方法?,python,selenium,selenium-webdriver,python-bindings,Python,Selenium,Selenium Webdriver,Python Bindings,在阅读中,显然曾经有一个RenderedWebElement类,使用hover方法。但是,它是专门为Java开发的(我搜索了Python绑定文档,但没有找到任何结果),并且从那时起,它就不推荐用于Java 悬停不能使用或使用对象执行 关于如何为Python实现这一点,有什么想法吗?我一直在使用,但它使用了RenderedWebElement,因此没有太大帮助 我正在使用:Python 2.7、Windows Vista、Selenium 2、Python绑定 EDIT:对于selenium.se
RenderedWebElement
类,使用hover
方法。但是,它是专门为Java开发的(我搜索了Python绑定文档,但没有找到任何结果),并且从那时起,它就不推荐用于Java
悬停
不能使用或使用对象执行
关于如何为Python实现这一点,有什么想法吗?我一直在使用,但它使用了RenderedWebElement
,因此没有太大帮助
我正在使用:Python 2.7、Windows Vista、Selenium 2、Python绑定
EDIT:对于selenium.selenium.selenium
对象,有一种方法鼠标悬停
,但我无法找到一种方法来创建实例,而不让独立服务器运行
编辑请仔细阅读标记为答案的回复的评论,以防你像我一样有误解 要进行悬停,需要使用
move\u To\u元素
方法
这里有一个例子
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()
@AutomatedTester为社区提供了一个很好的解决方案 下面是我如何使用它 我使用signal正确退出PhantomJS,因为它有时会挂起在当前进程中 我更喜欢使用
find\u element\u by\u xpath
,因为在chrome中很容易找到xpath
以下是方法:
右键单击->检查->右键单击->复制->复制
最后一行应该是“hover.perform()”是的,我已经试过了,但是当我说hover时,我有一个想法,当我将鼠标悬停在一个元素上时,它会显示应该显示的文本(比如如果你将鼠标悬停在“flag”元素上,就在这个评论的上方,你会弹出一个“为严重问题或版主关注的帖子设置标记”的弹出窗口(我不知道该怎么称呼它)有什么想法吗?这与悬停无关,正在应用的CSS与悬停无关,但您所追求的是元素的标题。为此,您需要使用
get_属性('title'))
在WebElement上,我认为这是获得它的方法……我猜是错的……谢谢你给出了正确的方法!你知道什么时候在mac上支持它吗?我得到了“无法执行本机交互”error加上我一年前的评论,这似乎是在Mac上解决的。我使用的是2.26 python绑定,不再出现“无法执行本机交互”错误
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()