如何在python Webdriver中进行鼠标悬停

如何在python Webdriver中进行鼠标悬停,python,selenium,webdriver,selenium-webdriver,Python,Selenium,Webdriver,Selenium Webdriver,这似乎是在webdriver中执行悬停/鼠标悬停的方法,至少在java api中是这样: Actions action = new Actions(driver); action.moveToElement(element).build().perform(); action.moveByOffset(1, 1).build().perform(); 在pythonapi中这可能吗? python的webdriver api文档似乎没有提到类似的内容。 在python webdriver中,

这似乎是在webdriver中执行悬停/鼠标悬停的方法,至少在java api中是这样:

Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();
在pythonapi中这可能吗? python的webdriver api文档似乎没有提到类似的内容。


在python webdriver中,鼠标悬停/鼠标悬停是如何完成的?

我想您是在询问需要单击下拉列表菜单项的场景。我们可以使用Selenium在python中实现自动化

from selenium.webdriver.common.action_chains import ActionChains


def hover(self):
    wd = webdriver_connection.connection
    element = wd.find_element_by_link_text(self.locator)
    hov = ActionChains(wd).move_to_element(element)
    hov.perform()
为了手动执行此操作,首先我们需要通过在父菜单上按住鼠标来打开下拉列表菜单。然后从显示的下拉菜单中单击所需的子菜单

使用SeleniumWebDriver中的ActionChains类,我们可以以与手动相同的方式执行此步骤。该方法描述如下-

步骤1:导入webdriver模块和ActionChains类

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
步骤2:打开Firefox浏览器并加载URL。

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)
firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()
步骤3:通过传递驱动程序对象创建ActionChains对象

action = ActionChains(driver);
步骤4:在页面中找到第一级菜单对象,并使用方法“move_to_element()”将光标移动到此对象上。 方法perform()用于执行我们在action对象上构建的操作。对所有对象执行相同操作。

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)
firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()
步骤5:使用方法Click()单击所需的菜单项。

最后一段代码如下:

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

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)

action = ActionChains(driver);

firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()

secondLevelMenu.click()

根据您的工作,您可以使用selenium中可用的任何其他find\u elemnt方法替换驱动程序。希望对您有所帮助。

打开popover后如何关闭鼠标?这对我打开鼠标盖的流行音乐很有用。但它会一直开着,永远不会关上。我试图在页面上找到另一个元素,并使用move_to_元素移动到另一个元素。不过运气不好@nids,单击鼠标悬停元素之外的元素?