selenium - 鼠标悬停点击
前言:
常见一些网页都是带有类似下图,当鼠标悬停在隐藏文本内容上时,显示所有内容。例如:我要点击“搜索设置”,先得把鼠标放在‘设置上’
F12 - 在页面中搜索‘高级搜索’,找到“搜索设置”文本,鼠标放到‘设置’上,display的值变为 block;鼠标不放上去之前是 none,即不可见元素。
隐藏的元素操作,会出现报错:ElementNotInteractableException: Message: element not interactable --- 元素不可交互(强行乱来)
一、处理方案:
Selenium 提供了 ActionChains 模块来处理鼠标操作。
鼠标的操作有:悬停、双击和右击等。
move_to_element() #移动到元素上
double_click() #双击
context_click(): #右击
perform(): #执行前面的动作
二、实操:
就以百度为例
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time import sleep driver = webdriver.Chrome() #驱动 driver.get('https://www.baidu.com') sleep(1) driver.maximize_window() #最大窗口化 sleep(1) set_up=driver.find_element_by_xpath('//*[@id="s-usersetting-top"]') ActionChains(driver).move_to_element(set_up).perform() sleep(1) advanced_search=driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[1]/span') advanced_search.click()
再看一下某社区的例子:
tips:如果Chrome老是自动更新版本,你的驱动版本也得更新
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!