最近要做一个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. jQuery样式操作

    获取样式和设置样式 <p class='myClass'  title='this is p'>this is p</p> 样式其实就是class属性所以设置和获取样式都能用a ...

  2. C++基础 (1) 第一天 C++相对C的改进 命名空间 引用

    第一天 语法 STL 数据结构  设计模式… 2 C++语言的间接 C++ = C语言+面向对象 本贾尼 语言分类: 不关心效率 只关心架构:java/脚本语言 效率:(内存要自己管理了,操作指针)C ...

  3. UNIX时间转换ASP代码.txt

    '参数:strTime:要转换的时 间:intTimeZone:该时间对应的时区 '返回值:strTime相对于1970年1月1日午夜0点经过的秒数 '示例:ToUnixTime("2008 ...

  4. XSS Chanllenges 16-19

    Stage #16 同样为DOM 型XSS ,document.write() 方法 插入代码 \x3cscript\x3ealert(document.domain)\x3c/script\x3e ...

  5. MYSQL数据库常用的LINUX命令

    此为我工作中常用MYSQL数据库命令 LINUX系统中启动 / 重启MYSQL服务:service mysql start  /  service mysql restart(重启服务) LINUX系 ...

  6. Ubuntu中无法update的解决办法

    我输入 sudo apt-get update 出现错误: /etc/apt$ sudo apt-get update Err http://security.ubuntu.com precise-s ...

  7. Centos与Ubuntu命令

    1.虽然Centos与Ubuntu都是linux的内核,但使用命令还是有所差别 2.如在Centos中跟新插件用的是:yum -y   (yum后面有一个空格) 在Ubuntu中跟新插件用的是:apt ...

  8. appium运行from appium import webdriver 提示most recent call last

    这是因为首次启动提示没有APPIUM 模块,CMD 执行 :pip3 install Appium-Python-Client

  9. nodejs-Sream

    Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出). Node.js,Str ...

  10. Apache负载均衡与Tomcat集群配置学习(Windows环境)

    本文主要参考自http://www.iteye.com/topic/985404?dhcc,经由实际操作配置操并记录而成. 由于最近的一个Java开发项目用到了Tomcat中间件作为web服务器,刚开 ...