首先什么是鼠标悬停,鼠标悬停就是鼠标停留在某个按钮或者是元素上,不需要去做点击的操作。在定位元素的时候,发现有的元素需要鼠标停留在上面才会出现,楼主没找到啥好网站,就以百度为例吧!比如下图:
不信的可以去试下。要做到鼠标悬停的效果,首先要先导入,from selenium.webdriver.common.action_chains import ActionChains,在ActionChains类中提供了所以鼠标事件的方法,
Action = ActionChains(driver),实例化ActionChains对象,传入driver对象,然后用实例对象Action,去调用鼠标悬停的方法move_to_element()。Action.move_to_element(driver.find_element_by_xpath('//div[@id="u1"]/a[text()="设置"]')),move_to_element(),括号里面填写要操作的元素位置。最后调用perform()f方法执行。
看下图方法描述:
然后在看鼠标悬停操作步骤:
附上简单demo:
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time def mouse_stop(): '''操作百度设置按钮,鼠标悬停''' driver = webdriver.Chrome() driver.get('https://www.baidu.com/') driver.maximize_window() driver.implicitly_wait(30) Action = ActionChains(driver)
# todo 传入要操作鼠标悬停的元素 element = Action.move_to_element(driver.find_element_by_xpath('//div[@id="u1"]/a[text()="设置"]')) element.perform() # todo 点击perform执行 time.sleep(3) driver.quit() mouse_stop()