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

自动化测试常见函数(上篇)

1.查找元素

find_element(方式,"元素") //查找一个元素
find_elements(方式,"元素") //查找多个元素,返回值List
driver.get("https://www.baidu.com")
ret=driver.find_elements(By.CSS_SELECTOR,"#hotsearch-content-wrapper")
for i in ret:print(i.text)

运行结果:

查找元素的方式:选择器(cssSelector)、xpath、ID、class_name

常用的是cssSelector(选中页面中指定的标签元素 )、xpath

2.操作测试对象

常见的操作有点击、提交、输入、清楚、获取文本

2.1 点击/提交对象---click()

页面上任意位置/元素都可以实现点击操作

2.2 模拟按键输入--send_keys(" ")

模拟键盘输入,因此键盘上可以输入的内容都可以填进去

2.3 清除文本--clear()

连续的send_keys会将多次输入的内容拼接到一起,若想重新输入,需要使用清除方法。

2.4 获取文本信息--text

text=driver.find_elements(By.CSS_SELECTOR,"#hotsearch-content-wrapper").text

注意:属性值!=文本信息

现在想获取按钮百度一下的文本

driver.get("https://www.baidu.com")
ret=driver.find_element(By.CSS_SELECTOR,"#su").text
print(ret)

运行结果:结果为空

应该是:获取属性值()

ret=driver.find_element(By.CSS_SELECTOR,"#su").get_attribute("value")
print(ret)

执行结果:

2.5获取当前页面标题和URL

获取标题 ---title

获取当前页面url  ----current_url

driver.get("https://www.baidu.com")
print("before:"+driver.title)
print("before:"+driver.current_url)
driver.find_element(By.CSS_SELECTOR,"#su").click
time.sleep(2)
print("after:"+driver.title)
print("after:"+driver.current_url)

执行结果:页面跳转前后打印出来的标题和url没有变化

适用场景:页面元素可点击跳转的情况下,可用来检测跳转的结果是否正确

#获取当前页面的句柄--第一个标签页
curHandle=driver.current_window_handle
#获取所有句柄
allHandle=driver.window_handles
for handle in allHandle:if handle!=curHandle:#切换句柄driver.switch_to_window(handle)

3.窗口

打开一个新的页面在之后获取到的title和url仍然是前一个页面的?

我们手工测试的时候,我们可以通过眼睛来判断当前的窗口是什么,但对于程序来说它不知道当前最新的窗口应该是哪个。对于程序来说他怎么来识别每一个窗口呢?每个浏览器都有一个唯一的属性句柄来表示,我们就可以通过句柄来切换。

那么是否存在打开了多个标签页,切换到某一个标签页的场景?

这种场景在测试中不常见

通常情况下一般会打开两个标签页,实现标签页的切换测试,更多时候,直接输入对应页面的连接在当前标签页下进行测试。

 3.2 窗口设置大小

1)窗口大小的设置

driver.maximize_window() //窗口最大化
driver.minimize_window()//窗口最小化
driver.fullscreen_window()//窗口全屏
driver.set_window_size(1024,768)//手动设置窗口大小

仅作了解即可,在自动化脚本执行过程中通常测试人员不会关注页面的变化 

3.3 屏幕截图---  save_screenshot

我们的自动化脚本一般部署到机器上自动的去运行,如果出现了报错,我们是不知道的,可以通过抓怕来记录当时的错误场景。

driver.save_screenshot('../images/image.png')

由于图片给定的名称是固定的,当我们多次运行自动化脚本时,历史的图片将会被覆盖

如何将历史的图片文件保存下来:每次生成的图片文件名称都不一样

//autotest-2024-05-08-104723.png
filename="autotest-"+datatime.datatime.now().strftime("%Y-%m-%d-%H%M%S")+".png"
driver.save_screenshot("./images/"+filename)

3.4 关闭窗口

driver.close()

注意:窗口关闭后driver要重新定义,关闭窗口!=关闭浏览器,因此在执行driver.close()之后仍然还需要调用driver.quit()

driver.close() //退出一个窗口
driver.quit() //退出浏览器,当执行这条语句后,所有的标签页都会被关闭

4.弹窗

弹窗是在页面是找不到任何元素的,这种情况怎么处理?使用selenium提供的Alert接口

1)页面上定位找不到弹窗元素

2)出现了弹窗,页面其他的元素也无法定位

因此出现了弹窗,必须先处理弹窗之后才能定位到页面的元素

首先切换到弹窗;再关闭弹窗(确认/取消)

alert=driver.switchTo.alert
alert.accpet() //确认
alert.dismiss() //取消  任选一个都可以关闭
alert.send_keys("hello")

 

http://www.xdnf.cn/news/9636.html

相关文章:

  • 如何使用 Python 的胶水语言特性
  • 小白成长之路-Linux程序管理(二)
  • matlab全息技术中的菲涅尔仿真成像
  • LLM Coding
  • 结构体定义嵌套定义
  • CRM系统的功能模块划分
  • Python编程4——函数
  • 点云保存为pcd的一个例子
  • 微前端架构设计与实战示例
  • 嵌入式仿真平台如何重塑I²C协议教学:以AT24C02实验为例
  • linux——TCP问题
  • 自举升压方法
  • 高通滤波和低通滤波
  • Wi-Fi 6E/7法规认证的要求
  • AAOS系列之(五) ---CarPowerService 电源管理模块分析
  • ros2--串口通信
  • Lesson 9 防火墙 iptables 和 firewalld
  • SpringBoot 自动装配原理深度解析:从源码到实践
  • csdn_export_md
  • Linux特殊符号
  • Linux下挂载目录如何进行操作
  • C# Datatable筛选过滤各方式详解
  • PCI SSC推出PIN合规服务商列表计划
  • WES(一)——文件准备
  • 机器学习:线性回归、损失函数、导数、偏导
  • 主题阅读输出-关于成年/成熟的认识-01-学习
  • vue3 项目运行 加载 白屏
  • 嵌入式JPEG图像加水印实战技巧
  • 自我觉察是成长的第一步,如何构建内心的平静
  • 仿真每日一练 | ABAQUS水滴入水分析