[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()
相关推荐
Hilaku7 分钟前
技术好就能升职是前端圈最大的谎言!
前端·javascript·程序员
卷无止境8 分钟前
FastAPI 的可观测性进化,从打日志到看清整个系统的呼吸
后端·python·fastapi
lhldsg8 分钟前
树洞倾诉的核心需求与产品定位误区
java·前端·小程序
光影少年21 分钟前
react navite高频手写/实操题
前端·javascript·react native·react.js·前端框架
CCTI_Curran25 分钟前
电动工具CE认证到底测什么?一文说清
自动化·电动工具·ce认证·角磨机·砂轮机
卷无止境25 分钟前
FastAPI 的 CI/CD 之路,从代码提交到线上运行
后端·python·fastapi
2601_9623824327 分钟前
系统学习Python——单元测试unittest:执行测试用例(unit test python)
python·测试用例·测试框架·unittest·测试集合
hunterandroid34 分钟前
HarmonyOS 弱网与离线优先架构实战:请求队列、本地缓存与增量同步
前端·前端框架
小玮看世界35 分钟前
[Python]动态规划三步走:从爬楼梯到打家劫舍,再到最大子数组和
开发语言·python·动态规划
lhldsg39 分钟前
宠物同城领养平台开发实战:从需求分析到上线部署指南
java·前端·小程序·需求分析·宠物