最近要做一个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
测试用例和测试数据在一起不好维护
测试数据和测试用例分离
 

web自动化-selenium2入门讲解(mac版本)的更多相关文章

  1. web自动化-selenium 入门篇

    selenium安装介绍 selenium是web浏览器的自动化工具 官网:https://www.selenium.dev 构成: WebDriver: 浏览器提供的浏览器api来控制浏览器(模拟用 ...

  2. Web自动化Selenium2环境配置中Selenium IDE的安装

    下载的firefox32.0的版本,但是在附件组件中只有selenuim IDE button,本以为这个就是selenium IDE插件,自以为是的后果就是把自己坑了.并且像一些selenium I ...

  3. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

  4. Web自动化框架搭建——前言

    1.web测试功能特性 a.功能逻辑测试(功能测试),这一块所有系统都是一致的,比如数据的添加.删除.修改:功能测试案例设计感兴趣和有时间的话可以另外专题探讨: b.浏览器兼容性测试,更重要的是体验这 ...

  5. WEB自动化(Python+selenium)的API

    在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                         ...

  6. web自动化开发环境配置详解

    1.安装 nodejs Grunt和所有grunt插件都是基于nodejs来运行的, https://nodejs.org/ 安装完成之后在终端 node -v 查看安装版本 2.安装 grunt-C ...

  7. python selenium - web自动化环境搭建

    前提: 安装python环境. 参考另一篇博文:https://www.cnblogs.com/Simple-Small/p/9179061.html web自动化:实现代码驱动浏览器进行点点点的操作 ...

  8. #001 CSS快速入门讲解

    CSS入门讲解 HTML人+CSS衣服+JS动作=>DHTML CSS: 层叠样式表 CSS2.0 和 CSS3.0 版本,目前学习CSS2, CSS3只是多了一些样式出来而已 CSS 干啥用的 ...

  9. Airtest之web自动化(一)

    Airtest之web自动化(一) [此文档有许多涉及到gif动图的地方,请全屏观看]   了解Airtest: 简介: Airtest是由网易团队开发的一款自动化框架,前期运用与游戏测试(通过截图识 ...

随机推荐

  1. vue中使用base64进行加解密

    vue进行Base64加解密 背景 项目中需要对特殊字符进行处理,避免json和数据库的特殊字符(""等)冲突,刚好学了信息安全,干脆整个加解密,wkk.. 使用步骤 打开dos, ...

  2. Selenium+Python+jenkins搭建web自动化测测试框架

    python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/  (Wind ...

  3. LAMP环境下,通过网页url获取gb2312编码中文命名的下载资源方法

    最近有个功能, 要求获取中文命名的.zip压缩文件,我准备直接采用网页url填写压缩文件地址的方式获取下载资源, 但问题是 我们的linux系统和php编程环境都是采用的zh_GB2312编码, 而浏 ...

  4. java的值传递与引用传递

    一. 经常搞不清楚,当一个对象做为参数传入到方法中时,为啥有时候值能被改变,有时候又不会改变,以下说明原因: 1.当传入的参数,在方法中能被改变的为 引用传递 2.当传入的参数,在方法中没被改变的为 ...

  5. POJ 1091

    这题确实是好. 其实是求x1*a1+x2*a2+....M*xn+1=1有解的条件.很明显,就是(a1,a2,...M)=1了.然后,可以想象,直接求有多少种,很难,所以,求出选择哪些数一起会不与M互 ...

  6. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps 集成SP和Office App

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  集成SP和Office App         你能够用两种 ...

  7. CF 372B Counting Rectangles is Fun [dp+数据维护]

    题意,给出一个n行m列的矩阵 里面元素是0或者1 给出q个询问 a,b,c,d 求(a,b)到(c,d)有多少个由0组成的矩形 我们定义 watermark/2/text/aHR0cDovL2Jsb2 ...

  8. 初学ToggleButton 点击button,更换button背景图片;再次点击,恢复之前背景图

    上方的图标,R.drawable.register_checked  是选中图片 下方的图标,   R.drawable.register_unchecked 是未选中图片 默认是上方的选中效果.点击 ...

  9. Android系统编译【转】

    本文转载自;http://blog.csdn.net/zirconsdu/article/details/8005415 Android编译系统分析 概要 由于android编译系统的复杂和使用了不熟 ...

  10. swift-初探webView与JS交互

    公司接下来的项目需要用swift内嵌h5来实现, 以前没有做过swift项目, 现在慢慢将所学的一点一滴记录一下 一个是怕自己忘了- =, 再就是希望大家看到能帮助我哈哈哈 前几天想要直接用swift ...