自动化测试——selenium工具(web自动化测试)

1、自动化测试

优点:通过自动化测试有效减少人力的投入,同时提高了测试的质量和效率。

           也用于回归测试。随着版本越来越多,版本回归的压力越来越大,仅仅通过人工测试             来回归所以的版本肯定是不现实的,所以我们需要借助自动化测试。

2、自动化测试的分类

接口自动化测试

UI自动化测试(界面测试):

                      移动端自动化测试

                      web端自动化测试

3、selenium(web自动化测试工具)

  • 为什么选择selenium作为我们的web自动化测试工具?

答:1)开源免费

        2)支持多浏览器。如:Chrome、Firefox、IE浏览器等等

        3)支持多系统。如:Linux、Windows、MacOS.....

        4)支持多语言。如:Java、Python、CSharp、Ruby、JavaScript、Kotlin

        5)selenium包里提供了很多可供测试使用的API。

4、环境部署

使用selenium实施web自动化测试,需要的环境有:

  • Chrome浏览器
  • 谷歌驱动(ChromeDriver)
  • selenium工具包

一个简单的自动化代码示例:

首先导入selenium包:

        <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>

简单自动化百度搜索蔡徐坤代码:

public void caixukunTest() throws InterruptedException {//打开浏览器ChromeDriver driver = new ChromeDriver();Thread.sleep(2000);//在浏览器输入百度网址,访问百度网页driver.get("https://www.baidu.com");Thread.sleep(2000);//找到百度首页的输入框元素,输入关键词 蔡徐坤driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");Thread.sleep(2000);//找到百度首页”百度一下“按钮,并点击driver.findElement(By.cssSelector("#su")).click();Thread.sleep(2000);//结束会话(关闭浏览器)driver.quit();}

简单自动化实例的五个主要步骤:

  • 创建驱动实例,创建会话
  • 访问网站
  • 查找元素
  • 操作元素
  • 结束会话

5、selenium常用方法

5.1 查找页面元素

findElement()

参数:By类(提供什么方式来查找元素)

返回值:webElement

findElements()

参数:By类(提供什么方式来查找元素)

返回值:List<WebElement>

5.2 元素的定位 By类

selector:基础选择器/复合选择器

功能:选中页面中指定的标签元素

xpath

语法:

  • 层级:/子级 // 跳级
  • 属性:@
  • 函数:contains()......

自动化里要求元素的定位必须唯一。但是在手动复制selector或者xpath元素的时候不一定是唯一的,需要我们手动修改到唯一的。

5.3 输入文本、点击、提交

sendKeys();

仅适用于文本字段和内容可编辑的元素;

click();

submit();

selenium官方不推荐使用submit,更推荐使用click,仅适用于表单元素。

 

5.4 清除

clear();

用于频繁测试输入是否可以重复输入。

5.5 获取文本、获取属性对应的值(注意区分)、获取页面的标题和URL

获取文本:getText()

获取属性对应的值:getAttribute()

获取页面的标题和URL:

6、窗口

6.1 窗口的大小设置:最大化、最小化、全屏窗口、手动设置窗口大小

6.2 窗口的切换

当浏览器每次打开一个标签页的时候,会自动的给每个标签页进行标识(句柄)。

6.3 屏幕截图

保存屏幕截图所用到的包:

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

实例代码:

//屏幕截图,保存现场File srcfile = driver.getScreenshotAs(OutputType.FILE);//把屏幕截图放到指定的路径下String filename = "my.png";FileUtils.copyFile(srcfile,new File(filename));

注意:

  • 当代码执行到查找结果页的元素的时候,页面还没有完全加载,此时需要添加等待机制,让其渲染完成。
  • 当图片文件名为固定格式的时候,多次执行程序会造成生成的图片被覆盖,可以将图片文件的命名添加动态数据(时间戳)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/439390.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考复习之数据结构篇

算法设计 迭代法&#xff1a;用于求方程的近似根。 1、若方程无解&#xff0c;则算法求出的近似根序列就不会收敛&#xff0c;迭代过程会变成死循环&#xff0c;因此在使用迭代算法前应先考查方程是否有解&#xff0c;并在程序中对迭代的次数给予限制。 2、方程虽有解&#…

浅谈安科瑞ASJ继电器在菲律宾矿厂的应用

摘要&#xff1a;对电气线路进行接地故障保护&#xff0c;方式接地故障电流引起的设备和电气火灾事故越来越成为日常所需。针对用户侧主要的用能节点&#xff0c;设计安装剩余电流继电器&#xff0c;实时监控各用能回路的剩余电流状态。通过实时监控用能以及相关电力参数、提高…

【喜报】进来沾喜气!

Dear 铁子们&#xff1a; 2023年9月份报名了PMP&#xff0c;11月份考试&#xff0c;今天终于是出成绩了&#xff01;真是佩服他们的办事效率了&#x1f605;&#xff0c;好在结果是好的&#xff0c;第一时间通知大家&#xff01;&#x1f4e2;&#x1f4e2;&#x1f4e2; 努力两…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组&#xff0c;其中 locations[i] 表示第 i 个城市的位置。同时给你 start&#xff0c;finish 和 fuel 分别表示出…

PMO和项目经理向老板提涨薪的成功秘籍有哪些?

一、PMO和项目经理向老板提涨薪的必备准备 作为PMO和项目经理&#xff0c;在向老板提涨薪之前&#xff0c;首先需要做好充分的准备。这不仅包括对自身工作的全面梳理&#xff0c;还需对公司目标、业务需求和市场环境有深刻的理解。了解公司目标意味着要清晰地了解公司对项目管…

Android画布Canvas裁剪区域clipRect,Kotlin

Android画布Canvas裁剪区域clipRect&#xff0c;Kotlin 只需要把clipRect放在Android系统的super.onDraw之前&#xff0c;就只绘制“剪切”出来的区域。意图很简单&#xff0c;只绘制中心区域宽高为800,600的那一小块&#xff1a; class MyImageView : AppCompatImageView {pr…

光学3D表面轮廓仪服务超精密抛光技术发展

随着技术的不断进步&#xff0c;精密制造领域对材料表面的处理要求越来越高&#xff0c;超精密抛光技术作为当下表面处理的尖端技术&#xff0c;对各种高精密产品的生产起到了至关重要的作用&#xff0c;已广泛应用于集成电路制造、医疗器械、航空航天、3C电子、汽车、精密模具…

Windows记事本不显示下划线的原因及解决方法

最近使用Windows 记事本敲代码发现一个问题&#xff1a;代码中的下划线无法显示&#xff01;&#xff01;&#xff01;(字体为“微软雅黑”、字体大小为11下&#xff0c;代码中的下划线无法显示。当然每个人情况可能不同) 在 Windows 记事本中&#xff0c;下划线可能会因为 字体…

【深度优先搜索】【组合数学】【动态规划】1467.两个盒子中球的颜色数相同的概率

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 深度优先搜索 组合数学 LeetCode1467 两个盒子中球的颜色数相同的概率 桌面上有 2n 个颜色不完全相同的球&#xff0c;球上的颜色共有 k 种。给你一个大小为 k 的整数数组 balls …

Web前端开发工具总结

一、nvm&#xff0c;node&#xff0c;npm之间的区别 nodejs&#xff1a;在项目开发时的所需要的代码库。相当于JDK npm&#xff1a;nodejs 包管理工具&#xff0c;npm 可以管理 nodejs 的第三方插件。在安装的 nodejs 的时候&#xff0c;npm 也会跟着一起安装。相当于Maven。 …

计算机视觉:高级图像处理,满足您的所有需求。

一、说明 特征提取是机器学习管道中的关键步骤&#xff0c;可增强模型在不同数据集上的泛化和良好表现能力。特征提取方法的选择取决于数据的特征和机器学习任务的具体要求。本文揭示图像处理的数学原理&#xff0c;实现增强的计算机视觉 二、关于计算机视觉的普遍问题 在计算机…

Hadoop增加新节点环境配置(自用)

完成Hadoop集群增添一个新的节点配置&#xff08;文中命名为&#xff09;Hadoop106&#xff0c;没有进行继续为该节点分配身份职能的步骤 1.在VMware中安装CentOS 7 新建虚拟机 1.⾸先我们创建⼀个新的虚拟机&#xff0c;也可以点⽂件-新建虚拟机。 2.选择⾃定义&#xff0c…