web自动化-selenium2入门讲解(mac版本)
2024-10-01 10:13:49
最近要做一个selenium2的分享,于是总结了下我用selenium2的感受,希望分享出来,可以对入门的小伙伴有一点帮助,也希望得到大佬的指教
一,环境搭建maven+selenium2+testng
Maven管理jar包
Testng管理测试用例
Selenium通过webdriver驱动浏览器
Chromedriver下载地址:https://chromedriver.storage.googleapis.com/index.html
环境搭建的注意点
1.webdriver和浏览器版本对应
2.mac需要对webdriver授权
二,八大定位方式
1.id-- 唯一标识
2.name--是提交到服务器的元素的名称
3.tagName--基本很少用,tagName不唯一
4.linkText--超链接的完整文本,可能有看不出来的空格
5.partialLinkText--超链接的部分的文本
6.className -- 样式的名称,class属性中的name
7.cssSelector--定位标签方式:标签名称[属性名1 = 属性值1][属性名2 = 属性值2]--常用
8.xpath--元素页面位置信息的路径,相当于坐标--最常用
三,常用api
看见一篇比较全的api介绍:
详解介绍Selenium常用API的使用--Java语言(完整版)
四,因为元素的加载需要时间,一共有三种等待方式,硬性等待和智能等待最常用
1,硬性等待--等待时间固定,thread.sleep(2000);
2,隐性等待--全局等待,manage().timeouts().implicitlyWait(time, unit) ;
3,智能等待--针对特定元素的等待,500ms检查一次是否满足条件
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until();
五,操作元素报错,应该检查哪些点
检查点1:没有打开新页面
检查点2:不在ifram框中
检查点3:没有隐藏属性
检查点4:定位方式是唯一的,使用js可以查询到
解决方法:
1,添加等待
2,鼠标操作
3,js操作,如果js操作都定位不到,那就是前端写的有问题了,可以给前端提bug了
六,PO思想
什么是PageObject思想:就是把页面元素定位和页面元素操作分开。
通常做法是分四层:
对象库层:用于存放我们的页面元素
逻辑层:一些封装好的功能用例模块
业务层:是我们真正的测试用例的操作
数据层:用于存放我们的测试数据
我建议入门的时候不要生硬的套PO思想,可以就把元素的定位,操作,测试用例都写在一个类中,遇到哪些问题,就想办法去封装,慢慢的就入门了,我举几个例
问题
|
解决办法
|
|
1
|
每个元素的定位方式和定位的值都不一样
|
把元素抽象成一个类,定位方式,定位的值等是类属性
|
2
|
很多不同的元素的操作都一样,比如click
|
重复的操作封装到方法里
|
3
|
测试用例和测试数据在一起不好维护
|
测试数据和测试用例分离
|
最新文章
- window.innerWidth、document.body.clientWidth和html的大小的区别
- 使用spring过程中遇到的问题
- VS2010安装EntityFramework5.0
- 【Mysql】命令行
- Type datetime2 is not a defined system type - Entity Framework 摘自网络
- Jquery异步请求简单实例(转)
- android开发之国际化
- I - Caocao's Bridges - hdu 4738(求桥)
- js字符串转json
- jquery ajax请求成功,数据返回成功,seccess不执行的问题
- 执行 apt-get -f install 提示错误
- [poj-2985]The k-th Largest Group_Treap+并查集
- 《Java编程思想第四版》第 16 章 设计范式-提到观察者模式
- Linux基础入门-目录结构及文件基本操作
- 关于memset的错误使用
- es curl 访问
- jsp中的四个作用域,九个内置对象分别是什么?
- 现代C++之理解模板类型推断(template type deduction)
- CentOS7 linux 中提示 bash: ls: 未找到命令...
- tkinter中Radiobutton单选框控件(七)
热门文章
- Problem 5
- 用chrony代替ntpd时间同步服务器
- ibatis的批处理
- lpa标签传播算法解说及代码实现
- 动态为TextView控件设置drawableLeft图标,并设置间距
- HDU TIANKENG’s rice shop(模拟)
- Highcharts数据表示(2)
- 【DataStructure】The difference among methods addAll(),retainAll() and removeAll()
- tcpdump dns流量监控
- 6.vi使用