• Selenium Web自动化测试 —— 高级控件交互方法!


    一、使用场景

    使用场景对应事件
    复制粘贴键盘事件
    拖动元素到某个位置鼠标事件
    鼠标悬停鼠标事件
    滚动到某个元素滚动事件
    使用触控笔点击触控笔事件(了解即可)

    二、ActionChains解析

    • 实例化类ActionChains,参数为driver实例。
    • 中间可以有多个操作。
    • .perform()代表确定执行。
    ActionChains(self.driver).操作.perform()
    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036

    三、键盘事件

    • 按下、释放键盘键位
    • 结合send_keys回车

    3.1、键盘事件——使用shift键实现大写

    • mouse = ActionChains(self.driver):实例化ActionChains类
    • mouse.key_dowm(keys.SHIFT,ele):按下SHIFT键
    • mouse.send_keys(“selenium”):输入字母自动变成大写
    • mouse.perform()

    3.2、键盘事件——输入后回车

    • 方法1:.send_keys(Keys.ENTER)
    • 方法2:ActionChains().send_keys(Keys.ENTER).perform()
    1. self.driver.find_element(By.XPATH, '//input[@aria-label="搜索"]').send_keys(Keys.ENTER)
    2. self.action.send_keys(Keys.ENTER).perform()

    3.3、键盘事件-复制粘贴

    • 多系统兼容
      • mac 的复制按钮为 COMMAND
      • windows 的复制按钮为 CONTROL
    • 左箭头:Keys.ARROW_LEFT
    • 按下COMMAND或者CONTROL: key_down(cmd_ctrl)
    • 按下剪切与粘贴按钮: send_keys("xvvvvv")

    四、鼠标事件

    4.1、双击

    • double_click(元素对象): 双击元素
    1. def test_double_click(self):
    2. self.driver.get("https://vip.ceshiren.com/#/ui_study/frame")
    3. ele01 = self.driver.find_element(By.XPATH, '//button[@class="el-button el-button--primary"]')
    4. self.action.double_click(ele01).perform()
    5. time.sleep(3)

    4.2、鼠标事件-拖动元素

    • drag_and_drop(起始元素对象, 结束元素对象): 拖动并放开元素
    1. def test_drag_and_drop(self):
    2. self.driver.get("https://vip.ceshiren.com/#/ui_study/action_chains")
    3. ele01 = self.driver.find_element(By.ID, "item1")
    4. ele02 = self.driver.find_element(By.ID, "item3")
    5. self.action.drag_and_drop(ele01, ele02).perform()

    4.3、 鼠标事件-悬浮

    • move_to_element(元素对象): 移动到某个元素
    1. def test_move_to_element(self):
    2. self.driver.get('https://vip.ceshiren.com/#/ui_study/action_chains2')
    3. ele01 = self.driver.find_element(By.XPATH, '//div [@data-v-3e28c77a and @class="title"]')
    4. self.action.move_to_element(ele01).perform()
    5. self.driver.find_element(By.XPATH, '//*[contains(text(),"管理")]').click()

    五、滚轮/滚动操作

    • 滚动到元素
    • 根据坐标滚动
    注意: selenium 版本需要在 4.2 之后才支持滚动操作

    5.1、滚动到元素

    • ActionChains().scroll_to_element().perform()
    1. def test_scroll_to_element(self):
    2. self.driver.get('https://ceshiren.com/')
    3. ele01 = self.driver.find_element(By.PARTIAL_LINK_TEXT, "jmeter分布式压测创建多节点报错")
    4. self.action.scroll_to_element(ele01).perform()
    5. self.action.scroll_by_amount(0, 100).perform()
    6. ele01.click()

    5.2、根据坐标滚动

    • ActionChains.scroll_by_amount(横坐标,纵坐标)
    1. def test_scroll_by_amount(self):
    2. self.driver.get('https://ceshiren.com/')
    3. self.action.scroll_by_amount(0, 1000).perform()

    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

    软件测试面试文档

    我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
     

    在这里插入图片描述

  • 相关阅读:
    JVM学习笔记——类加载和字节码技术篇
    项目执行过程中有几个关键注意事项?
    10、页面结构分析
    高三高考免费试卷真题押题知识点合集
    解决老版本Oracle VirtualBox 此应用无法在此设备上运行问题
    AP8851H 宽电压降压恒压DC-DC 电源管理芯片 5V 12V输出 零功耗 快充方案应用
    JavaScript操作BOM和DOM
    Yunfly 一款高效、性能优异的 node.js web 框架
    Windows端通过Vscode或PowerShell连接linux服务器,打开图形界面的程序
    Jmeter进阶使用指南-使用断言
  • 原文地址:https://blog.csdn.net/m0_58026506/article/details/133314408