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

自动化测试②

目录

操作:

3.4 关闭窗口

4.等待

1)强制等待:

2)隐式等待:

3)显示等待:

补充:自动化出现NoSuchElement错误

5.浏览器导航

1)打开网站

2)浏览器的前进、后退、刷新

6.弹窗

7.文件上传

8.无头模式(默认为有头模式)

9.页面加载策略


操作:

3.4 关闭窗口

driver.close()        注:窗口关闭后driver要重新定义。

4.等待

        避免因为渲染过慢出现的自动化误报问题。

1)强制等待:

Thread.sleep():使用简单,但是影响运行速率。主要用于调试。

2)隐式等待:

driver.manager().timeouts().implicitlywait(Duration.of...())

        在查找元素(.findElement)时,在指定时间内不断查找元素,若找到继续执行,超时未找到报错。

3)显示等待:

new WebDriverWait(driver, Duration.ofSeconds(3)).until($experss)

       $express: 涉及到selenium.support.ui.ExpectedConditions包下的ExpectedCondition

        在指定的时间范围内,只要满足操作的条件就会继续执行代码。

      ExpectedConditions预定义的方法:

        elementToBeClickable(By location):用于检查元素存在且启用,可被点击。

        textToBe(Bylocator,String str):等待页面上出现指定的文本内容(精确匹配)

        presenceOfElementLocationed(Bylocator):检查页面Dom上是否存在该元素。(主要用于页面跳转后判断某种标志是否出现

        urlToBe(java.long.String url):检查当前页面url为特定的URL。(用于验证页面是否已跳转到预期的页面

补充:自动化出现NoSuchElement错误

一、在报错代码前添加Thread.sleep()

二、执行自动化,在自动化打开的页面里打开前端开发者工具,手动检查元素是否不存在

        1)自动化打开的页面确定不存在该元素

                ①手动打开的页面确定不存在该元素

                ②元素为动态元素 => 先定位动态元素的前一级元素,再增加要定位的元素标签

        2)自动化打开存在该元素,页面渲染速度慢 => 添加等待

注:不要混合隐式等待和显示等待,可能导致不可预测的等待时间。

5.浏览器导航

1)打开网站

        1.driver.navigate().to("网站地址")

        2.driver.get("网站地址")

2)浏览器的前进、后退、刷新
driver.navigate().forward()
driver.navigate().back()
driver.navigete().refresh()

6.弹窗

1.警告弹窗        2.确认弹窗        3.提示弹窗

弹窗 => 不能通过元素进行定位

弹窗的操作:

1.切换弹窗 

Alert alert = driver.switchTo.alert();

 2.点击确认 

alert.accept();

3.点击取消

alert.dismiss();

  4.输入文本信息

alert.sendKeys(" ");

7.文件上传

        点击文件上传的场景不会弹出系统窗口,进行文件选择。

selenium无法识别非web的控件,上传文件窗口为系统自带,无法识别窗口元素。

        使用.sendKeys(" ")上传指定路径的文件,达到的效果是一样的。

8.无头模式(默认为有头模式)

//设置无头模式        options.addArgument("-headless");

        工作中,运行自动化不会人工一直盯着自动化执行效果,一般都设置无头模式,通过自动化执行的结果来分析

9.页面加载策略

optios.setPageLoadLoadStrategy(PageLoadStrategy.  )

       normal  等待整个页面加载完成,包括文件、css、js

       eager    等待整个dom树加载完成,只要html完成加载和解析完成,放弃等待图片、样式的加载。

       none     等待html下载完成,哪怕还没开始解析

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

相关文章:

  • loss的范围
  • 创建一个PCB封装(Altium Designer)
  • pandas高效实现数据对比解决方案
  • DBLab:一个免费的AI数据库管理工具
  • QML学习07Property
  • 使用Zotero的RSS订阅功能快速了解感兴趣领域最新文章
  • LLM基础-什么是大模型推理(LLM Inferencing)
  • Pypiserver
  • LeetCode 每日一题 2025/5/19-2025/5/25
  • 在langchain4j中 UserMessage注解和SystemMessage两个注解的区别
  • where is the examples of stm32h743i demo project inside of stm32cubeh7
  • 强化学习在大模型中的应用详解
  • 2025年第八届广西大学生程序设计大赛(正式赛)题解(更新中)
  • Java反射详解
  • 竞赛小算法总结(一):位运算,因数分解和“马拉车”算法含代码详解
  • C#学习
  • 有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(下)
  • leetcode 17. Letter Combinations of a Phone Number
  • MD5+盐保存密码
  • 用VMWare架飞牛nas 启用Intel千兆网卡
  • 人工智能导论复习 第一、二章
  • 从零开始上传预印版论文到 arXiv
  • SciPy是什么?是一个开源的 Python 算法库和数学工具包
  • 怎么判断股指期货空头增仓和多头增仓呢?
  • C++ 定义一个结构体,用class还是struct
  • DAY35作业
  • AI 赋能心理健康预测与干预:智能技术如何成为情绪“守护者”
  • 【分库分表】理论基础
  • Python训练营打卡Day36
  • YOLO11解决方案之区域追踪探索