UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!

2024-08-31 06:28

本文主要是介绍UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

UI测试,也称为用户界面测试,是一种测试类型,旨在检查应用程序的界面是否工作正常,以及是否存在任何妨碍用户行为且不符合书面规格的BUG。UI自动化测试则是利用自动化工具来执行这些测试,以提高测试效率和准确性.

这里分享下拉选择框&弹出框&滚动条操作实践

图片

下拉框操作、01

在 UI 自动化中,操作下拉选择框可以通过以下步骤进行:

1)定位下拉选择框元素:通过适当的元素定位方法,找到下拉选择框的元素。

2)打开下拉框:例如通过点击(.click)来操作下拉框元素打开下拉框。

3)选择选项:可以通过以下几种方式选择下拉框中的选项:

  • 根据索引选择:确定要选择的选项的索引位置,选择对应索引的选项。

  • 根据文本选择:如果选项具有可识别的文本,可以通过文本内容来选择对应的选项。

  • 根据值选择:如果选项具有特定的值,可以通过值来选择对应的选项。

下拉选择实现步骤:

  • 1、导入Select类 (S为大写)

  • 2、实例化select对象 select=Select(element)

图片

3、通过select的相关方法选择option选项

select.select_by_index(index) 参数index表示的option索引

图片

select.select_by_value(value) 参数value表示的是option元素中value的属性值

图片

select.select_by_visible_text(visible_text ) 参数visible_text表示的是option的文本内容

图片

代码示例:

# 导包import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.select import Select # 实例化浏览器驱动driver = webdriver.Chrome()driver.maximize_window() # 打开hao123网站driver.get("https://www.hao123.com")time.sleep(3) # 点击「切换」城市按钮,进入选择城市下拉框element = driver.find_element_by_css_selector("[monkey='weather']")element.click() # 定位到城市下拉框所在的元素element = driver.find_element(By.CSS_SELECTOR, "[name='province']")select = Select(element) # 通过select对象的index来选择北京time.sleep(3)select.select_by_index(0) # 通过select对象的value来选择上海time.sleep(3)select.select_by_value("02") # 通过select对象的文本内容来选择天津time.sleep(3)select.select_by_visible_text("T 天津") # 等待3Stime.sleep(3) # 退出浏览器驱动driver.quit()

2、弹框操作

图片

1)一般弹出框操作

在 UI 自动化中,处理弹出框操作可以通过以下步骤进行:

1.等待弹出框出现:使用适当的等待机制,等待弹出框出现。这可以确保在执行操作之前弹出框已经显示在界面上。

2.定位弹出框元素:使用元素定位方法找到弹出框的相关元素,例如标题、按钮等。

3.操作弹出框:根据具体的需求,进行以下操作:

  • 填写文本:如果弹出框需要输入文本,可以找到相应的输入元素并填入文本。

  • 点击按钮:如果弹出框有确定、取消等按钮,使用点击操作方法点击相应的按钮。

  • 验证弹出框内容:根据需要,验证弹出框中的文本、选项等是否符合预期。

代码示例:

# 导包import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keys # 实例化浏览器驱动 driver = webdriver.Chrome()driver.maximize_window() # 打开baidu网站driver.get("https://www.baidu.com") # 点击页面右上角【登录】按钮,进入登录页面driver.find_element(By.ID, "s-top-loginbtn").click() # 点击微信图标,弹出微信扫码登录弹窗time.sleep(3)element = driver.find_element_by_css_selector("[title='微信']")element.click() # 执行其他操作……,等待3Stime.sleep(3) # 退出浏览器驱动driver.quit()

2. 警告弹出框操作

警告弹出框操作步骤:

1)定位到到包含弹出警告框的页面

2)触发警告框出现

3)使用 driver.switch_to.alert 

切换到警告框:通过调用 driver.switch_to.alert(),将控制权切换到弹出的警告框。

4)与警告框进行交互:

  • 接受警告框:使用 alert.accept() 方法来接受警告框。

  • 取消警告框:使用 alert.dismiss() 方法来取消警告框。

  • 获取提示信息:使用 alert.text 获取弹出框文本提示信息。

  • 输入文本:如果警告框需要输入文本,可以使用 alert.send_keys("文本内容") 方法将文本输入到警告框中。

代码示例:

# 导包from selenium import webdriver # 实例化浏览器驱动driver = webdriver.Chrome() # 导航到目标页面driver.get("https://example") # 点击测试图标,弹出警告框element = driver.find_element_by_id("example")element.click() # 获取弹出框对象alert = driver.switch_to.alert() # 处理警告框if alert:    alert.accept()  # 接受警告框    # 或者    alert.dismiss()  # 取消警告框    # 或者    alert.text()   # 获取警告框信息 # alert.text 也可以    # 或者    alert.send_keys("自定义文本")  # 输入文本到警告框 # 执行其他操作 # 退出浏览器驱动driver.quit()

图片

滚动操作、03

在 UI 自动化中,实现滚动条操作可以通过以下几种常见的方法:

1.使用元素坐标:通过获取滚动条的坐标位置,然后设置元素的位置来实现滚动。可以使用自动化工具提供的元素定位和操作方法,例如WebDriver中的moveToElement或scrollTo方法。

2.使用滚动方法:Selenium自动化工具提供了专门的滚动方法,例如WebDriver中的scrollBy或scrollToElement方法。这些方法可以指定滚动的方向和距离。

3.模拟鼠标滚动:通过模拟鼠标滚轮的滚动操作来实现滚动条的滚动。可以使用鼠标操作方法,例如发送鼠标滚轮滚动事件。

4.等待滚动完成:在执行滚动操作后,需要等待页面加载完成或滚动操作完成。可以使用等待条件或超时设置来确保滚动操作完成后再进行后续操作。

示例:

1、定义js

js = "window.scrollTo(0, 2000)" # 如果想要移动到最下方,y值给最大值就可以实现

2、执行JS

driver.execute_script(js)

# 导包import timefrom selenium import webdriver # 实例化浏览器驱动driver = webdriver.Chrome()driver.maximize_window() # 打开hao123网站driver.get("https://www.hao123.com") # 控制滚动条滚向下方滚动# 定义js js = "window.scrollTo(0, 2000)" # 执行JSdriver.execute_script(js) # 等待3Stime.sleep(3) # 退出浏览器驱动driver.quit()

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

软件测试面试文档

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

这篇关于UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123141

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识