selenium鼠标操作和键盘操作

鼠标操作

在 WebDriver 中,与鼠标操作相关的方法都封装在 ActionChains 类中

# 引入 ActionChains 类
from selenium.webdriver import ActionChains

常用方法:

  1. perform():执行 ActionChains 类中存储的所有行为
  2. click():左击
  3. context_click():右击
  4. double_click():双击
  5. move_to_element():鼠标悬停
  6. move_to_element_with_offset():先找到元素,再根据元素位置偏移指定偏移量
  7. click and hold():长按
  8. drag_and_drop():将源元素拖动到目标元素处
  9. drag_and_drop_by_offset(): 将源元素拖动指定偏移量

主要是调用其他操作方法后,都要再次调用这个方法perform(),表示执行某个鼠标操作

复制代码
from selenium.webdriver import ActionChains
from selenium import webdriver

driver = webdriver.Chrome("../resources/chromedriver.exe")

# 创建实例
chains = ActionChains(driver)

# 访问网址
driver.get("file:///C:/test.html")

# 登录按钮
username = driver.find_element_by_id("username")
login_btn = driver.find_element_by_class_name("login")
password = driver.find_element_by_id("password")

# 左键点击
chains.click(username).perform()

# 右键点击
chains.context_click(username).perform()

# 双击
chains.double_click(password).perform()
复制代码
# 悬停到设置按钮
chains.move_to_element(login_btn).perform()

# 悬停到指定偏移量
chains.move_to_element_with_offset(login_btn, 2, 2).perform()
# 长按
chains.click_and_hold(login_btn).perform()
# 拖动1
chains.drag_and_drop(source=username, target=password)

# 拖动2
chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)

键盘操作

send_keys()方法除了可以用来模拟键盘输入,还可以用它来输入键盘上 的按键,甚至是组合键,如 Ctrl+a、Ctrl+c 等

在使用键盘按键方法前需要先导入 Keys 类

from selenium.webdriver.common.keys import Keys

示例:

复制代码
from selenium import webdriver
# 调用 Keys 模块
from selenium.webdriver.common.keys import Keys
driver
= webdriver.Chrome() driver.get("http://www.baidu.com")
# 在输入框输入内容 driver.find_element_by_id("kw").send_keys("selenium")
# 删除多输入的一个 m driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
# 输入空格键+“教程” driver.find_element_by_id("kw").send_keys(Keys.SPACE) driver.find_element_by_id("kw").send_keys("教程")
# 输入组合键 Ctrl+a,全选输入框内容 driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
# 输入组合键 Ctrl+x,剪切输入框内容 driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
# 输入组合键 Ctrl+v,粘贴内容到输入框 driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
# 用回车键代替单击操作 driver.find_element_by_id("su").send_keys(Keys.ENTER)
driver.quit()
复制代码

常用的键盘操作

  • send_keys(Keys.BACK_SPACE):删除键(BackSpace)
  • send_keys(Keys.SPACE):空格键(Space)
  • send_keys(Keys.TAB):制表键(Tab) 
  • send_keys(Keys.ESCAPE):回退键(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

 

posted @   天才九少  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示