当前位置: 首页 > news >正文

(UI自动化测试web端)第三篇:元素的常用操作方法_鼠标操作

在selenium中将操作鼠标的方法封闭在ActionChains类中。

实例化对象:
action = ActionChains(driver) #driver表示鼠标驱动对象
方法:
context_click(element) 右击,模拟鼠标右键点击的效果。
double_click(element)双击,模拟鼠标双击效果。
drag_and_drop(source,target)悬停,模拟鼠标悬停效果。
perform() 执行,用来执行以上所有鼠标操作

注意:所以的方法都需要执行才能生效。
接下来我们一个一个过。。。

1、鼠标右击操作context_click

# 导包selenium
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 打开测试网站
driver.get("file:///E:/%E5%AD%A6%E4%B9%A0%E7%9B%B8%E5%85%B3/%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9B%B8%E5%85%B3/02/UI%E8%87%AA%E5%8A%A8%E5%8C%96V5.0%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA%E7%B4%AB%E8%89%B2.html")
# 使窗口最大化
driver.maximize_window()# 在用户名文本框上点击鼠标右键
# 创建鼠标对象
action = ActionChains(driver)
# 调用鼠标右击的方法
action.context_click(driver.find_element(By.XPATH,"//p/input[@placeholder='账号A']"))
# 调用鼠标执行的方法
action.perform()# 等待3s
time.sleep(3)
# 退出浏览器驱动
driver.quit()

————————————————
在这里插入图片描述

# 创建鼠标对象
action = ActionChains(driver)
# 调用鼠标右击的方法
action.context_click(driver.find_element(By.XPATH,"//p/input[@placeholder='账号A']"))
# 调用鼠标执行的方法
action.perform()

跟我之前的几篇博客相比,这篇主要新学的就是这几行代码,,上面这段代码解释:在鼠标右击操作时,肯定是先将鼠标放到账号A的输入框之后再去右击操作的,对吧 ,, 所以context_click( )中放的是账号A这个输入框的元素定位的表达式driver.find_element(By.XPATH,“//p/input[@placeholder=‘账号A’]”)今天学的所有的鼠标操作方法都和这个一样,下面就不再一一解释了

2、鼠标双击操作double_click

在这里插入图片描述

# 导包selenium
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 打开测试网站
driver.get("file:///E:/%E5%AD%A6%E4%B9%A0%E7%9B%B8%E5%85%B3/%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9B%B8%E5%85%B3/02/UI%E8%87%AA%E5%8A%A8%E5%8C%96V5.0%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA%E7%B4%AB%E8%89%B2.html")
# 使窗口最大化
driver.maximize_window()# 输入用户名:admin,暂停3秒钟后,双击鼠标左键,选中admin
element = driver.find_element(By.XPATH,"//p/input[@placeholder='账号A']")
element.send_keys('admin')
time.sleep(3)# 创建鼠标对象
action = ActionChains(driver)
# 调用鼠标双击的方法
action.double_click(element)
# 调用鼠标执行的方法
action.perform()# 等待3s
time.sleep(3)
# 退出浏览器驱动
driver.quit()

3、鼠标拖动操作drag_and_drop

创建鼠标对象:action = ActionChains(driver)
调用鼠标拖动事件方法:cation.drag_and_drop(source,target)
#source源元素,被拖动的元素
#target目标源,也就是要拖动到哪个元素上。
调用鼠标执行方法:action。perform()
在这里插入图片描述

# 导包selenium
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 打开测试网站
driver.get("file:///E:/%E5%AD%A6%E4%B9%A0%E7%9B%B8%E5%85%B3/%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9B%B8%E5%85%B3/02/UI%E8%87%AA%E5%8A%A8%E5%8C%96V5.0%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/drop.html")
# 使窗口最大化
driver.maximize_window()# 创建鼠标对象
action = ActionChains(driver)
# 选中拖拽对象
element1 = driver.find_element(By.ID,'div1')
# 定位拖拽后目的地
element2 = driver.find_element(By.ID,'div2')
# 调用鼠标拖拽的方法
action.drag_and_drop(element2,element1)
# 调用鼠标执行的方法
action.perform()# 等待3s
time.sleep(10)
# 退出浏览器驱动
driver.quit()

4、鼠标悬停操作drag_and_drop

也是工作当中用到的最多
在这里插入图片描述
你点击点击菜单它会有下拉显示,点击下拉框的菜单。。。
在这里插入图片描述

# 导包selenium
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 打开测试网站
driver.get("file:///E:/%E5%AD%A6%E4%B9%A0%E7%9B%B8%E5%85%B3/%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9B%B8%E5%85%B3/02/UI%E8%87%AA%E5%8A%A8%E5%8C%96V5.0%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA%E7%B4%AB%E8%89%B2.html?userA=123456&passwordA=&telA=&emailA=&selecta=bj&fruit=lia&upfilea=&textarea=")
# 使窗口最大化
driver.maximize_window()# 创建鼠标对象
action = ActionChains(driver)
# 定位要悬停的元素
element1 = driver.find_element(By.XPATH,"//*[text()='注册用户A' and @value='注册A']")
# 调用鼠标悬停的方法
action.move_to_element(element1)
# 调用鼠标执行的方法
action.perform()# 等待3s
time.sleep(10)
# 退出浏览器驱动
driver.quit()

5、鼠标单元素拖动操作

在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/96250.html

相关文章:

  • 【AI学习】概念了解
  • 计算机控制系统-达林算法验证
  • 模拟电子技术-基本放大电路
  • b站c语言鹏哥课程代码内容
  • PostgreSQL数据库迁移到Docker拉取的pg镜像中的
  • STM32基础教程——定时器
  • PyQt6实例_批量下载pdf工具_exe使用方法
  • QCustomPlot入门
  • 【面试八股】:常见的锁策略
  • 小林coding-9道Java虚拟机面试题
  • 4.6js面向对象
  • 【C++游戏引擎开发】《线性代数》(2):矩阵加减法与SIMD集成
  • 有关pip与conda的介绍
  • Centos7 安装 Nginx
  • Linux的例行性工作
  • 关于跨域问题(本地前端访问服务器端接口跨域出错)
  • MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案
  • 关于服务器只能访问localhost:8111地址,局域网不能访问的问题
  • Redis:概念与常用命令
  • Django 项目打包exe本地运行