web自动化-selenium2入门讲解(mac版本)
最近要做一个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语言(完整版)
https://blog.csdn.net/qq_22003641/article/details/79137327 四,因为元素的加载需要时间,一共有三种等待方式,硬性等待和智能等待最常用 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思想,可以就把元素的定位,操作,测试用例都写在一个类中,遇到哪些问题,就想办法去封装,慢慢的就入门了,我举几个例
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
问题 | 解决办法 | |
1 | 每个元素的定位方式和定位的值都不一样 | 把元素抽象成一个类,定位方式,定位的值等是类属性 |
2 | 很多不同的元素的操作都一样,比如click | 重复的操作封装到方法里 |
3 | 测试用例和测试数据在一起不好维护 | 测试数据和测试用例分离 |

更多精彩