做web自动化时,网页有些隐藏元素无法定位的情况,需要模拟鼠标操作:
鼠标右键点击、双击、移动鼠标到某个元素、鼠标拖拽等。
这些操作,可以通过 Selenium 提供的 ActionChains 类来实现。
类似百度---更多产品
如果我们把鼠标放在上边,就会弹出 下面的 糯米、音乐、图片 等图标。
使用 ActionChains 来 模拟鼠标移动 操作的代码如下:
#导入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
driver = webdriver.Chrome(r'f:\chromedriver.exe')
driver.implicitly_wait(5)
driver.get('https://www.baidu.com/')
ac = ActionChains(driver)# 鼠标移动到 元素上ac.move_to_element(
driver.find_element_by_css_selector('[name="tj_briicon"]')
).perform()
接下来就可以定位里面的元素啦~
抓取内层元素方法:冻结网页界面
在 开发者工具栏 console 里面执行如下js代码
setTimeout(function(){debugger},5000)
表示在 5000毫秒后,执行 debugger 命令
执行该命令会 浏览器会进入debug状态。 debug状态有个特性, 界面被冻住, 不管我们怎么点击界面都不会触发事件。
这样我们就可以查看元素属性了。