2.25selenium的安装

一.自动化和selenium

1.自动化

软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果,将人为驱动的测试行为转化为机器执行的过程

2.为什么要做自动化测试

自动化测试能够代替一部分的手工测试,自动化测试能够提高测试效率.

随着功能的增加,版本越来越多,版本回归的压力也越来越大,所以仅仅通过人

工测试来回归所有的版本肯定是不现实的,所以我们需要借助自动化来进行回归

3.为什么选择selenium作为我们的web自动化工具

1)开源免费

2)支持多浏览器.Chrome,Firefox,IE,edge,Safari

3)支持多系统,如Linux,Windox,MacOS

4)支持多语言,如Java,python

5)selenium包底层有很多可以使用的API

4.环境部署

seleniumg工具包

Chorme浏览器

Chromedriver谷歌驱动

maven

5.什么是驱动,驱动的工作原理

驱动:人工测试情况下,人工手动的驱动打开浏览器,对于自动化来说,代码不能直接打开浏览器,需要借助驱动程序来协助打开浏览器

代码可以驱使驱动打开浏览器

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

  • 客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON 格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。

  • Sever端需要依赖原生的浏览器组件转化Web Service的命令为浏览器native的调用来完成操作。

代码要发送请求

驱动要接收并且解析请求

驱动是一个服务器

查看9515端口号

6.简单的web自动化演示

百度一下 孙悟空

第一步,创建maven文件.在java下创建对应的test类

第二步,找到输入框对应的代码

点击完之后点输入框

找到百度一下按钮并点击

释放掉驱动对象,关闭浏览器

二. selenium基础语法

1.定位元素的方法

diver.findElment()

抽象类By里的方法

1.1css选择器

1.2xpath选择器

复制的xpath地址

得到

删掉就可以得到整个百度热搜框的

这里就直接显示不匹配,无法查找,因为元素定位必须唯一

2.元素的操作

2.1.点击(click)和提交(submit)

click和submit都可以操作按钮

但是click不一定可以submit

但是页面的任何元素都可以click.,不建议使用submit

2.2.模拟按键输入 sendKeys

2.3.gettext获取文本

需要注意下:不是说页面上可以看见的文字都能成为文本,有的文本是属性对应的属性值,不能通过gettext()获取属性值.要用getAttribute()

3.等待

代码的执行速度比较快,而前端页面渲染我的速度相对较慢一些,可能导致的结果就是:代码已经执行到下一步了,页面还没有渲染出来,元素找不到,

等待分为:强制等待,隐式等待,显式等待

3.1强制等待

让程序强制暂停对应时间,等待指定时间之后继续执行下一步

3.2隐式等待

在规定的时间范围内,轮询等待元素出现之后就立即结束,如果在规定时间内元素任然没有出现,则会抛出异常

隐式等待作用在webdriver整个生命周期.

只要没走到driver.quit,即没有退出浏览器,隐式等待都是一直存在的

优点:节省了大量的等待时间,元素展示之后就可以直接执行下一步,执行效率高

缺点:需要等待所有元素都展现才会执行下一步,仍会有额外上时间的浪费

因为前端页面是一点点的渲染的,但是整个操作需要等页面上所有元素渲染好了才能执行请求

3.3.强制对某一个元素进行测试

第一步先构建对应的类

然后调用until方法

表示等待什么时候为止,直到括号里的内容满足位置,如果条件在指定时间内没有满足,就抛出异常

优点:只针对一个元素来进行等待,极大了降低了自动化整体的等待时间

缺点:写法复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值