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

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

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

 

相关文章:

  • day22-定时任务故障案例
  • docker容器间服务访问的问题
  • mimics导出图像 标注文件
  • css样式块重复调用
  • 通义实验室开源针对RAG的预训练框架
  • Lua中table、模块、元表和元方法
  • delta 流响应
  • 【C/C++】delete nullptr;
  • Nginx的反向代理
  • 传输线的特性阻抗和传播延迟
  • 15.为什么HashMap的容量是2的幂次方
  • 代码随想录算法训练营第五十二天
  • 无法删除/重装VirtualBox,提示缺少msi安装包
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论事件驱动架构及应用(包括解题思路和参考素材)
  • 中望CAD与AutoCAD的SWOT对比分析(基于2025线上发布会观察与行业数据)
  • 最终章:终焉之塔 · 前端之道
  • Telnet 命令详解
  • 传感器技术的演进与测试方法探究
  • 【设计模式】责任链
  • Ubuntu 系统grub日志级别设置
  • 阿里云上传的网站 服务器路径/seo项目分析
  • 淘宝客不建立网站怎么做/seo程序专员
  • 购物网站建设行情/萧山区seo关键词排名
  • 邢台织梦模板建站/台州百度推广优化
  • 十大免费erp管理软件/东莞搜索seo网站关键词优化
  • 黑龙江专业建站/关键词优化流程