学习Python中Selenium模块的基本用法(17:使用ActionChains操作键盘)

Selenium模块的ActionChains类专门用于模拟复杂的用户交互行为,通过链式调用方式,将多个用户操作(鼠标、键盘等)组合成一个动作序列,然后一次性执行。本文学习使用ActionChains操作键盘的基本用法。
  ActionChains的通用函数及键盘操作函数如下表所示:

序号 名称 说明
1 pause 暂停所有输入一段时间(秒)
2 perform 执行所有存储的操作
3 key_down 模拟按下键盘上的某个键
4 key_up 模拟释放键盘上的某个键
5 send_keys 发送按键到当前焦点所在元素
6 send_keys_to_element 发送按键到指定的元素

以百度搜索为例,如下面代码所示,找到输入框,分别执行正常输入、大写输入、组合键输入(ctrl+a)等操作,运行效果如下图所示:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import Keys, ActionChains
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

time.sleep(2)

search_box =driver.find_element(By.ID, "chat-textarea") 

ActionChains(driver).send_keys_to_element(search_box,'DeepSeek ')\
                    .pause(1)\
                    .key_down(Keys.SHIFT)\
                    .send_keys("h")\
                    .key_up(Keys.SHIFT)\
                    .send_keys("ello world!")\
                    .pause(1)\
                    .key_down(Keys.CONTROL)\
                    .send_keys('a')\
                    .key_up(Keys.CONTROL)\
                    .pause(1)\
                    .send_keys('DeepSeek官网')\
                    .send_keys(Keys.ENTER)\
                    .perform()

参考文献:

1\]https://www.selenium.dev/zh-cn/ \[2\]https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/ \[3\]https://blog.csdn.net/kk_lzvvkpj/article/details/148610502 \[4\]https://registry.npmmirror.com/binary.html?path=chromedriver/ \[5\]https://chromedriver.chromium.org/ \[6\]https://www.runoob.com/selenium/selenium-mouse-and-keyboard-operation.html

相关推荐
m0_4708576410 分钟前
CSS如何实现Bootstrap进度条自定义动画_利用keyframe关键帧
jvm·数据库·python
nashane12 分钟前
HarmonyOS 6学习:Navigation Dialog模式与智能Web长截图融合实践
人工智能·pytorch·python
m0_6245785918 分钟前
SQL高效实现基于JOIN的交叉分析_多表关联实现多维统计
jvm·数据库·python
威联通网络存储18 分钟前
QNAP 闪存底座:制造企业 ERP 数据库容灾方案
数据库·python·制造
ZHW_AI课题组20 分钟前
基于AnimeGANv2的照片动漫化
图像处理·python
茉莉玫瑰花茶29 分钟前
LangGraph 入门教程:构建 AI 工作流 [ 案例三 ]
前端·人工智能·python
辰尘_星启29 分钟前
【ROS2】 Python 节点的开发流程
开发语言·python·机器人·系统·控制·ros2
m0_6245785936 分钟前
SQL数据更新时如何减少锁表时间_合理控制事务边界与并发
jvm·数据库·python
曲幽37 分钟前
让 FastAPI Agent 思考不阻塞:手把手教你实现异步任务与后台处理方案
redis·python·agent·fastapi·web·async·celery·ai agent·backgroundtask
2401_8676239841 分钟前
如何提取SQL日期中的月份_使用MONTH函数快速过滤
jvm·数据库·python