Selenium4 系列 - 鼠标、键盘操作详细解读

有哪些鼠标操作呢?

  • 执行操作
  • 左键、右键单击、双击
  • 鼠标悬停到元素、偏移处
  • 长按
  • 拖动

点击右边目录即可跳转哦! -------------->>>>>>>>>> 

 act.moveToElement(link).contextClick().sendKeys(Keys.ArrowsDown).build().perform();

执行操作

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()

知识点

move_to_element_with_offset() 是先找到元素,再根据元素位置偏移指定偏移量

 

长按

# 长按
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)

知识点

  • drag_and_drop 将源元素拖动到目标元素处
  • drag_and_drop_by_offset 将源元素拖动指定偏移量

 

有什么键盘操作?

  • 删除键
  • 空格键
  • 制表键
  • 回退键
  • 回车键
  • 全选
  • 复制
  • 剪切
  • 粘贴
  • F1-F12
  • ......其实就是所有键盘都能模拟,包括alt、shift、insert、delete、home等等等...这里就不举例了,看源码很容易懂

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from time import sleep

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

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

# 访问网址
driver.get("http://www.baidu.com")

# 找到搜索框
inputElement = driver.find_element_by_id("kw")

# 输入搜索内容
inputElement.send_keys("锐洋智能")

# ctrl+a全选
inputElement.send_keys(Keys.CONTROL, "a")

sleep(1)

# ctrl+c 复制输入框内容
inputElement.send_keys(Keys.CONTROL, 'c')

sleep(1)

# ctrl+x 剪切输入框内容
inputElement.send_keys(Keys.CONTROL, 'x')

sleep(1)

# ctrl+v 粘贴输入框内容
inputElement.send_keys(Keys.CONTROL, 'v')

sleep(1)

# 空格键
inputElement.send_keys(Keys.SPACE)

sleep(1)

# 后退键
inputElement.send_keys(Keys.BACKSPACE)

sleep(1)

# tab键
inputElement.send_keys(Keys.TAB)

sleep(1)

# 回车键
inputElement.send_keys(Keys.ENTER)

# 刷新页面
inputElement.send_keys(Keys.F5)

 

posted @ 2021-11-08 18:43  锐洋智能  阅读(1039)  评论(0编辑  收藏  举报