如何使用 Selenium 实现自动化操作?
一、关于Selenium1.1、为什么选择它作为web自动化的测试工具?选择Selenium作为web自动化测试工具的原因(面试也许会问):1. 开源免费;2. 支持多浏览器,如Chrome、 Firefox、IE浏览器等;3. 支持多系统,如Linux、Windows、MacOS;4. 支持多语言,如下:
前言
本篇咱们来谈谈Selenium自动化脚本是如何工作的,以及如何实现一个简单的自动化示例;
一、关于Selenium
1.1、为什么选择它作为web自动化的测试工具?
选择Selenium作为web自动化测试工具的原因(面试也许会问):
1. 开源免费;
2. 支持多浏览器,如Chrome、 Firefox、IE浏览器等;
3. 支持多系统,如Linux、Windows、MacOS;
4. 支持多语言,如下:
5. Selenium包提供了很多可供测试使用的API;
1.2、Selenium操作浏览器的原理
首先来了解一下不可不知的“驱动”:
什么是驱动?例如,计算机有了驱动,才可以使计算机工作起来;人工测试的情况下,我们用鼠标打开浏览器,那么驱动就是人力;对于自动化来说,代码不能直接打开浏览器,而是需要借助驱动才能打开浏览器;
那么,来看一下Selenium编写的自动化脚本是如何打开浏览器的:
从上图可以看的出来,驱动要接受 selenium 脚本发送来的 http 请求,并解析请求,实际上就可以把这个驱动看成一个服务器,例如谷歌chromedriver,如下图:
注意:使用的浏览器驱动版本一定要和浏览器版本保持差不多一致;
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036
二、实现一个简单的自动化
2.1、使用自动化操作浏览器
实现一个简单的自动化主要包含以下几个步骤
1. 创建驱动示例,创建会话(打开浏览器);
2. 访问网站;
3. 查找元素;
4. 操作元素;
5. 结束会话;
例如:通过谷歌浏览器进入
注意:需要先导入selenium相关依赖,并且将浏览器驱动下载完成,放入java/jdk/bin目录下;
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
由于自动化代码执行速度很快,所以可以在每执行一步用线程休眠停留一下(如果想观看到效果)
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
public class FirstAutoTest {
//百度网址搜索关键词“不孕不育”
public void buyunbuyuTest() throws InterruptedException {
//创建驱动示例,创建会话(打开浏览器)
ChromeDriver driver = new ChromeDriver();
Thread.sleep(3000);
//在浏览器里输入百度网址,访问百度首页
driver.get("https://www.baidu.com");
Thread.sleep(3000);
//找到百度首页输入框元素,并输入关键词“不孕不育”
driver.findElement(By.cssSelector("#kw")).sendKeys("不孕不育");
Thread.sleep(3000);
//找到百度首页"百度一下"按钮,并点击
driver.findElement(By.cssSelector("#su")).click();
Thread.sleep(3000);
//结束会话,关闭浏览器
driver.quit();
}
}
2.2、Selenium常用的API
2.2.1、查找页面元素
使用方法:
indElement();
参数:
By类(通过什么方式来定位元素);
By类中最常用的两个定位方法:
1. cssSelector(),它可以通过css选择器来定位元素;
2. className(),它可以通过xpath来定位元素;
xpath如何使用呢?
最常用的是用层级的方式来表示:/子级 //跳级;(@为属性)
例如:谷歌浏览器中的Google标志
这样你就可以拿到这个标签的xpath://*[@id="logo"] 这便是跳级(前面的路径都不显示,直接表示属性id=“logo”这个标签)
或者是xpath://*[@id="csdn-copyright-footer"]/ul[1]/li[2]/a 这便是一个跳级加子集的方式;
值得注意的是:我们不要一个一个去推这个子集表示的方式,可以直接按照上图的方式进行拷贝xpath路径,配合着className()方法使用即可,但是有时候赋值selector或者xpath元素不一定是唯一的,需要我们进行手动修改到唯一,这就是为什么我们要对xpath的语法要有一定了解的原因;你学费了吗?
下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础
资料获取方式 :
更多推荐
所有评论(0)