[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()
相关推荐
jsjzsl26 分钟前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
天远数科10 分钟前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
派小心.14 分钟前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
2601_9548118222 分钟前
机器视觉教学套件选型指南:五维技术参数对比与课程体系评估
python·数码相机
hhb_61828 分钟前
一键生成数据看板,ECharts实战演示
前端·javascript·echarts
Java后端的Ai之路35 分钟前
08_React组件API
前端·react.js·前端框架
小马不起床39 分钟前
零基础玩转 FastAPI_09:前端基础工程构建
前端·状态模式·fastapi
小马不起床1 小时前
零基础玩转 FastAPI_05:后端课程模块
python·fastapi
小王2041 小时前
Day 41:模型注意力机制 — SE / CBAM / ECA
python·深度学习·机器学习
171320330计算机毕设编程2 小时前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法