【自动化测试】 环境部署和元素定位

写在前面

        勤奋跟吃苦不一样,假如你对工作,生活不满意。就要跳出圈子,接触其它人或事物,提升自己。从而换个工作,或者换了心态看待问题。而不是,吃苦的加班逼着自己去内卷,卷来卷去觉得吃苦受累,最终什么也没获得。躺平只是心态,不是听天由命。

                                                                                                                          ——不吃葱的阿冬


🍟问题一 什么是自动化测试?

🍔问题二 什么是Selenium以及Selenium工作原理?

🥪问题三 Selenium环境如何搭建?

🍞问题四 Selenium API


目录

写在前面

一、概念    

1.Selenium IDE

2.Webdriver

3.Selenium Grid

二、环境部署

三、八大元素定位

1.为什么要使用元素定位

2.如何定位

3.定位元素依赖于什么

3.1 id定位

3.2通过name定位 

 3.3 通过tag name和class name定位

3.4通过xpath和css selector


一、概念    

        自动化测试就是将人工要做的测试工作交给代码去执行,主要是为了提高测试效率,提高测试产品的质量。

Selenium是一个做web/UI自动化测试的工具

现在主流的测试工具:
   ①:QTP:收费 支持(支持web、桌面软件自动化)
   ②: selenium:免费,开源 只支持web项目
   ③:Robot frameword: 基于Python扩展关键字驱动自动化工具

自动化测试主要包括:单元测试,UI测试和接口测试 

Selenium的特点:

1)免费,可以查看源码

2)Selenium支持各大浏览器

3)跨平台(在Linux,windows,Mac上都可以)

4)有丰富的API

        最早期的seleniumRC已经被现在的webDriver所替代,可以理解为selenium1.0+webdriver构成了现在的Selenium2.0。

        我们日常所说的Selenium就是Selenium2.0,它是由Selenium IDE,Webdriver,Selenium Grid组成。

1.Selenium IDE

        Selenium IDE是一个用于selenium测试的完整集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。调试过程中可以逐步进行或者调整执行的速度,并且可以在底部浏览日志出错误信息,录制的脚本可以用多种语言导出。

2.Webdriver

        Selenium RC 在浏览器中运行JavaScript应用会存在环境沙箱问题,但是Webdriver可以跳出JavaScript的沙箱,针对不同浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定语言(Java C# Python 等)绑定来驱动浏览器对web元素进行操作和验证。 

Webdriver的工作原理:

①:启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动浏览则作为webdriver的remote server。

②:客户端(测试脚本),借助ComandExecutor发送HTTP请求给sever端

③:Sever端需要依赖原生的浏览器组件,转化web service的命令为浏览器native的调用来完成操作。

3.Selenium Grid

其实就是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息。可以实现在同一时刻不同服务器上执行不同的测试脚本。

二、环境部署

这里使用的是chrome+Java

chrome 下载地址:Google Chrome - 快速安全的网络浏览器,专为您而打造

chromedriver 下载地址:ChromeDriver - WebDriver for Chrome - Downloads

!!! 两者的版本需要一致 

配置系统环境变量:找到chrome的位置,将刚下好的chromedriver驱动放到这个位置

然后复制地址,后面用

找到高级系统变量-->Path

添加pom.xml依赖

<dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency>
</dependencies>

能打开浏览器就说明运行成功:

package org.example;import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;public class Main {public static void main(String[] args) {test1();}public static void test1() {//创建驱动WebDriver webDriver = new ChromeDriver();//打开百度webDriver.get("https://www.baidu.com");}
}

三、八大元素定位

1.为什么要使用元素定位

因为真正项目中计算机无法找到具体位置,所以需要元素定位来指定计算机所定位的元素来进行操作。

2.如何定位

启动驱动之后 在网页中按下F12或者右击鼠标“检查”,然后点击“元素”

3.定位元素依赖于什么

定位元素依赖于各个层级、标签名、属性、路径

主要有这么几个

①id  ②name  ③class name  ④link text  ⑤partial link text  ⑥tag name  ⑦xpath  ⑧css selector

最重要的也是最常用的定位也就三个:css、xpath、标签定位也就是⑥⑦⑧

3.1 id定位

 id是页面元素的属性,但是不是所以的元素都有id。如果一个元素有id属性,那么一般在整个页面是唯一的。外面一般可以用id来定位到这个唯一的属性:

        //通过id定位private static void test01() {WebDriver webDriver = new ChromeDriver();webDriver.get("https://www.baidu.com");webDriver.findElement(By.id("kw")).sendKeys("java");}

3.2通过name定位 

如果这个项目中有name且name是项目中唯一的,那么就可以使用name定位。

//2.name定位private static void test02() {WebDriver webDriver = new ChromeDriver();webDriver.get("https://www.baidu.com");webDriver.findElement(By.name("wd")).sendKeys("java");}

 3.3 通过tag name和class name定位

3.4通过xpath和css selector

不经常用的就不列出来了

如果需要在浏览器中查询,按 f12 再按ctrl +f 然后直接输入上述定位元素中的内容就行 

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

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

相关文章

<网络安全>《71 微课堂<常见的国家级APT组织介绍>》

1 简介 国家级APT&#xff08;Advanced Persistent Threat&#xff0c;高级持续性威胁&#xff09;组织是有国家背景支持的顶尖黑客团伙&#xff0c;专注于针对特定目标进行长期的持续性网络攻击。 2 十大APT 2.1 NSA 美国国家安全局&#xff08;National Security Agency&a…

C++之类

目录 一&#xff1a;面向过程和面向对象的初步认识 二&#xff1a;类的引入 三&#xff1a;类的定义 3.1类的两种定义方式&#xff1a; 3.2成员变量命名的建议 四&#xff1a;类的访问限定符及封装 4.1类的访问限定符 4.2封装 一&#xff1a;面向过程和面向对象的初步认…

配置code-server和texlive实现网页写tex

使用overleaf太卡了&#xff0c;有云服务器或者nas小主机&#xff0c;配置自己的code-servertexlive&#xff0c;来写论文。 之前用服务器配置过自己的overleaf&#xff0c;感觉不是很好用&#xff0c;缺少东西。 一、思路 使用docker先安装一个ubuntu&#xff0c;用dockerfil…

openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint

文章目录 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint256.1 功能描述256.2 语法格式256.3 参数说明 openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint 256.1 功能描述 设置本次查询执行内生效的…

ruoyi-nbcio-plus基于vue3的flowable流程元素选择区面板的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

BoostCompass —— 搜索引擎

文章目录 一、项目简介二、Boost库简介1. 简介2. Boost 库的特点 三、项目主要模块1. 网页内容获取&#xff0c;数据预处理模块2. 建立正排索引和倒排索引&#xff0c;项目核心模块3. 编写 http_server 模块&#xff0c;进行网络开放 四、项目功能预览1. 项目文件预览2. 项目执…

什么是工业协议转换软件?

在现代工业自动化领域&#xff0c;随着技术的不断革新和智能化水平的提升&#xff0c;各种工业设备和系统之间的通信变得日益重要。然而&#xff0c;由于历史、技术差异和标准多样化等原因&#xff0c;不同的工业设备和系统往往采用各自独特的通信协议&#xff0c;导致它们之间…

【T5中的激活函数】GLU Variants Improve Transformer

【mT5中的激活函数】GLU Variants Improve Transformer 论文信息 阅读评价 Abstract Introduction Gated Linear Units (GLU) and Variants Experiments on Text-to-Text Transfer Transformer (T5) Conclusion 论文信息 名称内容论文标题GLU Variants Improve Transfo…

算法设计与分析实验报告c++实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、实验目的 1&#xff0e;加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、 编…

HackTheBox-Mist

整体思路 端口扫描->Pluck CMS组件文件读取漏洞->文件上传获取shell->创建指向exe的快捷方式来提权-> 信息收集&端口利用 namp -sSVC 10.10.11.17目标只开放了80端口&#xff0c;将mist.htb加入到hosts文件后&#xff0c;访问mist.htb Pluck CMS文件读取 在…

05 - 7 段十进制数码管显示

---- 整理自B站UP主 踌躇月光 的视频 1. 实验设计 根据前一节的内容&#xff0c;这里也通过 ROM 的方法显示十进制。这里我们设计显示 3 位十进制数&#xff0c;需要三个数码管&#xff0c;地址位宽为 8&#xff0c;数据位宽为 12。 A7A6A5A4A3A2A1A0number000000000000000011…

DNS和HTTP

DNS应用层协议 域名解析系统 使用IP地址&#xff0c;来描述设备在网络上的位置 IP地址并不适合来进行传播网站&#xff0c;就采用了域名的方式来解决网站传播的问题。如www.baidu.com这样类似的就很容易让人记住。其域名就直接代表了这个网站。而且有一套自动的系统会将域名解…