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