自动化测试——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.mzph.cn/news/655889.shtml

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

相关文章

如何在 Ubuntu 中安装 Microsoft Edge 浏览器

微软终于聪明了一回&#xff0c;也学会了「打不过就加入」。Microsoft Edge 浏览器的 Linux 稳定版已经于 2020 年 10 月 23 日发布&#xff0c;并提供给 Linux 发行版使用。除了官方 Edge APT 源以外&#xff0c;还提供了.deb和.rpm格式的安装包。 Microsoft Edge 基于 Chrom…

【Linux操作系统】:Linux开发工具编辑器vim

目录 Linux 软件包管理器 yum 什么是软件包 注意事项 查看软件包 如何安装软件 如何卸载软件 Linux 开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 插入模式 插入模式切换为命令模式 移动光标 删除文字 复制 替换 撤销 跳至指…

Python爬虫解析库安装

解析库的安装 抓取网页代码之后&#xff0c;下一步就是从网页中提取信息。提取信息的方式有多种多样&#xff0c;可以使用正则来提取&#xff0c;但是写起来相对比较烦琐。这里还有许多强大的解析库&#xff0c;如 lxml、Beautiful Soup、pyquery 等。此外&#xff0c;还提供了…

备战蓝桥杯---数据结构与STL应用(基础实战篇1)

话不多说&#xff0c;直接上题&#xff1a; 当然我们可以用队列&#xff0c;但是其插入复杂度为N,总的复杂度为n^2,肯定会超时&#xff0c;于是我们可以用链表来写&#xff0c;同时把其存在数组中&#xff0c;这样节点的访问复杂度也为o(1).下面是AC代码&#xff1a; 下面我们来…

Shell中sed编辑器

1.简介 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要么存储在一个 命令文本文件中。 2.sed编辑器的工作流程 sed…

《元梦之星》bug层出不穷,逼得玩家研发“自救套路”?

对于bug&#xff0c;想必喜爱游戏的玩家都不会陌生&#xff0c;在各类软件或者游戏中偶尔会出现一些影响正常运行的bug&#xff0c;但是并不会引起很大的反响。大家之所以能以平常心看待是因为各大游戏或者是应用软件中的bug都会因为玩家的及时发现而进行修复&#xff0c;在出现…

软件价值3-A*算法寻路

A*算法&#xff08;A-star算法&#xff09;是一种启发式搜索算法&#xff0c;主要用于在图或网络中找到从起始节点到目标节点的最佳路径。它结合了Dijkstra算法的广度优先搜索和贪婪最优优先搜索的特点&#xff0c;通过估算从起始节点到目标节点的代价来指导搜索方向。 A*算法…

Android中属性property_get和property_set的详细用法介绍

1&#xff0c;property_get和property_set的作用说明 在Android操作系统中&#xff0c;property_get和property_set是用于获取和设置系统属性的函数。这些属性通常用于存储和读取配置信息&#xff0c;例如设备配置、网络设置、系统参数等。 property_get函数用于获取指定属性…

二叉树中和为某一值的路径

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

一、创建Vue3项目

1. 下载 node.js 下载地址&#xff1a;https://nodejs.org/zh-cn 优先选择 16 版本; node -v || node -version 可以检查本地 node.js 版本 2. 设置淘宝镜像源 npm config set registry https://registry.npmmirror.com/ 设置淘宝镜像源 npm config get registry 查看当前镜像…

如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

《幻兽帕鲁》是一款Steam平台热门游戏&#xff0c;开放式大陆和养成式冒险结合&#xff0c;成为2024首款热门游戏&#xff0c;不过由于官方仅发布了Windows版的游戏客户端&#xff0c;Mac用户无法直接玩&#xff0c;好在有Crossover这样的神器&#xff0c;让苹果电脑也能玩上《…

JavaScript 基础 (二)

文章目录 JavaScript 基础 &#xff08;二&#xff09;一.运算符1.1 **算术运算符**1.1.1 基础1.1.2 算术运算符执行的优先级顺序1.1.3 小结 1.2 **赋值运算符**1.2.1 基础1.2.2 小结 1.3 **一元运算符**1.3.1 基础1.3.2 小结 1.4 **比较运算符**1.4.1 比较运算符的介绍1.4.2 比…

如何改变音频的频率教程

这是一篇教你如何通过一些工具改变音频频率的教学文章。全程所用的软件都是免费的。 本文用到的软件&#xff1a; AIX智能下载器 用于抓取任何视频网站资源的插件 格式工厂 将mp4转化为mp3 Audacity 改变音频频率的软件 如果你已备好mp3或其他格式的音频&#xff0c;那么直接看…

flutter module打包成framework引入原生工程

Flutter - 将 Flutter 集成到现有项目&#xff08;iOS - Framework篇&#xff09; 本篇文章大幅参考了 caijinglong 大佬的总结文章&#xff1a; 把flutter作为framework添加到已存在的iOS中[1] 用 Flutter 来开发&#xff0c;从来都不可能是新开的一个纯 Flutter 项目&#xf…

Ubuntu22.04 网络图标突然消失

本来好好的&#xff0c;突然就发现没有网络了&#xff0c;图标也不见了。 特别是Ubuntu虚拟机&#xff0c;容易出现此问题。 修复办法 1. sudo service network-manager stop2. sudo rm /var/lib/NetworkManager/NetworkManager.state3. sudo service network-manager start到…

【STM32CubeMX】生成代码错误

1、不能有中文路径 参考博客&#xff1a; http://t.csdnimg.cn/OdYi2 生成的代码已经帮忙初始化&#xff0c;只需修改main函数的while&#xff08;1&#xff09;即可&#xff1a; 2、有可能是Java环境版本不对 我安装的时候操作正确

The Rise and Potential of Large Language Model Based Agents: A Survey 中文翻译

大型语言模型代理的崛起与潜力&#xff1a;综述 摘要 长期以来&#xff0c;人类一直追求与或超越人类水平的人工智能&#xff08;AI&#xff09;&#xff0c;而人工智能代理被视为实现这一目标的有希望的方式。人工智能代理是感知环境、做出决策并采取行动的人工实体。已经有…

林浩然探索庄子美妙哲学境界

林浩然探索庄子美妙哲学境界 Lin Haoran Explores the Sublime Philosophical Realm of Zhuangzi 在现代社会这个信息洪流中&#xff0c;犹如一片繁华喧嚣的都市丛林&#xff0c;青年学者林浩然却如一只挣脱了世俗束缚的鲲鹏&#xff0c;以其独特的视角和深邃的思考&#xff0c…

TensorFlow2实战-系列教程7:TFRecords数据源制作1

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、TFRecords 在训练过程中&#xff0c;基本都是使用GPU来计算&#xff0c;但是取一个…

易点易动设备管理平台助力制造企业实现设备的能耗监控

在当今注重环保和可持续发展的时代&#xff0c;能源消耗成为制造企业关注的重要问题。为了提高能源利用效率和降低能源成本&#xff0c;制造企业需要对设备的能耗进行有效监控和管理。易点易动设备管理平台作为一款智能化设备管理解决方案&#xff0c;为制造企业提供了全面的能…