[Web自动化] Selenium模拟用户的常见操作

8.8 Selenium模拟用户的常见操作

8.8.1 模拟鼠标操作

Selenium提供了多种模拟鼠标操作的方法,如点击、双击、右击和悬停等。

  • 点击(Click)
    使用click()方法模拟鼠标点击。
python 复制代码
element.click()
  • 双击(Double Click)
    虽然Selenium WebDriver API本身没有直接的double_click()方法,但可以通过ActionChains类来实现。
python 复制代码
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.double_click(element).perform()
  • 右击(Right Click)
    同样使用ActionChains类。
python 复制代码
actions.context_click(element).perform()
  • 悬停(Hover):模拟鼠标悬停在元素上。
python 复制代码
actions.move_to_element(element).perform()

8.8.2 模拟键盘操作

  • 输入文本(Send Keys)
    使用send_keys()方法模拟键盘输入。
python 复制代码
element.send_keys("Hello, Selenium!")
  • 特殊按键
    send_keys()方法还支持发送特殊按键,如回车键(Keys.RETURN)、制表符(Keys.TAB)等。
    常见键盘事件代码如下,注意要先导入:
    from selenium.webdriver.common.keys import Keys
键盘事件代码 **备注 **
send_keys(Keys.BACK_SPACE) 删除键BackSpace
send_keys(Keys.SPACE) 空格键Space
send_keys(Keys.TAB) 制表键Tab
send_keys(Keys.ESPACE) 回退键Esc
send_keys(Keys.ENTER) 回车键Enter
send_keys(Keys.CONTROL,'a') 全选Ctrl+A
send_keys(Keys.CONTROL,'c') 复制CTRL+C
send_keys(Keys.CONTROL,'x') 剪切CTRL+X
send_keys(Keys.CONTROL,'v') 粘贴Ctrl+V
send_keys(Keys.F1) 键盘F1
send_keys(Keys.F12) 键盘F12
python 复制代码
element.send_keys("username", Keys.TAB, "password", Keys.RETURN)

示例代码演示模拟用户登录、填写表单等操作

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com/login")

# 填写用户名和密码
username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")
username_input.send_keys("user123")
password_input.send_keys("pass123", Keys.RETURN)

# 登录后,假设需要填写一个表单
form_input = driver.find_element(By.ID, "form_input")
form_input.send_keys("Hello, this is a test.")
form_submit = driver.find_element(By.ID, "submit_button")
form_submit.click()

# 后续操作...
driver.quit()
相关推荐
子兮曰21 小时前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙1 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_426003961 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
长沙三为智能科技1 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python