Python爬虫基础——selenium模块进阶(模拟鼠标操作)

主要内容包括:模拟鼠标操作。常用的鼠标操作有单击、双击、右击、长按、拖动、移动等,模拟这些操作需要用到selenium模块中的ActionChains类。该类的基本使用方法是将实例化好的WebDriver对象作参数传到该类中,实例化成一个ActionChains对象,然后调用ActionChains对象的函数针对WebDriver对象中的网页元素模拟需要的鼠标操作。调用鼠标操作函数后,不会立即执行操作,而是将操作存储到一个队列中,当调用perform()函数时,再从队列中依次取出各个操作来执行。

1、模拟鼠标的单击、双击、右击

ActionChains类中的click()函数用于模拟鼠标单击操作,此外,类中的double_click()函数用于模拟鼠标双击操作,context_click()函数则用于模拟鼠标右击操作, 这两个函数的使用方法和click()函数一致。

2、模拟鼠标的长按和松开长按

click_and_hold()函数用于模拟鼠标的长按操作(按下鼠标且不松手),release()函数则用于模拟松开长按的鼠标操作。

3、模拟鼠标的拖动

复制代码
drag_and_drop()函数用于模拟拖动鼠标的操作,drag_and_drop_by_offset()函数则用于模拟用鼠标将目标拖动一定距离的操作,(需要出水平方向和垂直方向上的位移值)。在登录界面模拟拖动滑块时常用到这个函数。

4、模拟鼠标移动

move_by_offset()函数用于模拟将鼠标移动一定距离的操作(需要出水平方向和垂直方向上的位移值)。 move_to_element()函数用于模拟将鼠标移动到指定元素所在位置的操作。

python 复制代码
##############################
##作者:白雪公主的后妈
##时间:2024年1月11日
##主题:Python爬虫基础------selenium模块进阶
##主要内容:使用selenium模块模拟鼠标操作、<ifame>标签处理、显示等待和隐式等待。
##############################
#1、模拟鼠标操作
'''
常用的鼠标操作有单击、双击、右击、长按、拖动、移动等,模拟这些操作需要用到selenium模块中的ActionChains类。
该类的基本使用方法是将实例化好的WebDriver对象作参数传到该类中,实例化成一个ActionChains对象,然后调用ActionChains
对象的函数针对WebDriver对象中的网页元素模拟需要的鼠标操作。调用鼠标操作函数后,不会立即执行操作,而是将操作存储
到一个队列中,当调用perform()函数时,再从队列中依次取出各个操作来执行。
'''
#1.1模拟鼠标的单击、双击、右击
# ActionChains类中的click()函数用于模拟鼠标单击操作
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
service = Service('E:\\python\\Scripts\\chromedriver.exe')      #实例化一个谷歌浏览器
browser = webdriver.Chrome(service=service)
browser.get('https://www.taobao.com')                           #访问淘宝网页首页
#通过XPATH表达式定位搜索框中的右侧'搜索'按钮
search_button = browser.find_element(By.XPATH,'//*[@id="J_TSearchForm"]/div[2]/button')
actions = ActionChains(browser)         #利用WebDriver对象browser实例化一个ActionChains对象,命名为actions
# actions.click(search_button).perform()      #调用click()函数模拟针对"搜索"按钮的单击操作,在调用perform()函数执行该操作
'''
    此外,类中的double_click()函数用于模拟鼠标双击操作,context_click()函数则用于模拟鼠标右击操作,
这两个函数的使用方法和click()函数一致。
'''
#1.2模拟鼠标的长按和松开长按
'''
    click_and_hold()函数用于模拟鼠标的长按操作(按下鼠标且不松手),release()函数则用于模拟松开长按的鼠标操作。
'''
actions.click_and_hold(search_button).perform()     #长按搜索按钮
time.sleep(5)                                       #等待5秒
actions.release(search_button).perform()            #松开长按的鼠标,触发单击事件,页面跳转
#1.3模拟鼠标的拖动
'''
drag_and_drop()函数用于模拟拖动鼠标的操作,drag_and_drop_by_offset()函数则用于模拟用鼠标将目标拖动一定距离的操作,
(需要出水平方向和垂直方向上的位移值)。在登录界面模拟拖动滑块时常用到这个函数。
'''
#1.4模拟鼠标移动
'''
move_by_offset()函数用于模拟将鼠标移动一定距离的操作(需要出水平方向和垂直方向上的位移值)。
move_to_element()函数用于模拟将鼠标移动到指定元素所在位置的操作。
'''
相关推荐
2301_822366354 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
小郎君。4 小时前
【无标题】
python
喵手5 小时前
Python爬虫实战:数据治理实战 - 基于规则与模糊匹配的店铺/公司名实体消歧(附CSV导出 + SQLite持久化存储)!
爬虫·python·数据治理·爬虫实战·零基础python爬虫教学·规则与模糊匹配·店铺公司名实体消岐
喵手5 小时前
Python爬虫实战:国际电影节入围名单采集与智能分析系统:从数据抓取到获奖预测(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集数据csv导出·采集国际电影节入围名单·从数据抓取到获奖预测
派葛穆5 小时前
Python-PyQt5 安装与配置教程
开发语言·python·qt
自可乐5 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus
可触的未来,发芽的智生6 小时前
发现:认知的普适节律 发现思维的8次迭代量子
javascript·python·神经网络·程序人生·自然语言处理
懒羊羊大王&6 小时前
软件测试之博客系统项目实战(补充和解析部分)
selenium·单元测试·测试用例·集成测试
真智AI6 小时前
用 LLM 辅助生成可跑的 Python 单元测试:pytest + coverage 覆盖率报告(含运行指令与排坑)
python·单元测试·pytest
0思必得06 小时前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化