最近要做一个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. 莫烦大大TensorFlow学习笔记(9)----可视化

      一.Matplotlib[结果可视化] #import os #os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf i ...

  2. Project Euler 41 Pandigital prime( 米勒测试 + 生成全排列 )

    题意:如果一个n位数恰好使用了1至n每个数字各一次,我们就称其为全数字的.例如,2143就是一个4位全数字数,同时它恰好也是一个素数. 最大的全数字的素数是多少? 思路: 最大全排列素数可以从 n = ...

  3. BZOJ 1194 [HNOI2006]潘多拉的盒子 (图论+拓扑排序+tarjan)

    题面:洛谷传送门 BZOJ传送门 标签里三个算法全都是提高组的,然而..这是一道神题 我们把这道题分为两个部分解决 1.找出所有咒语机两两之间的包含关系 2.求出咒语机的最长上升序列 我们假设咒语机$ ...

  4. 【AIM Tech Round 5 (rated, Div. 1 + Div. 2) A】 Find Square

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找到左上角.往下一直走,往右一直走走到B边界就好. 中点的话.直接输出中位数 [代码] #include <bits/stdc ...

  5. maven tomcat 热部署

    一.什么是热部署 就是在 tomcat 启动的时候进行部署 二.配置 tomcat 1.需要修改 tomcat 的 conf/tomcat-users.xml 配置文件.添加用户名.密码.权限. &l ...

  6. 有关elasticsearch分片策略的总结

    最近在优化部分业务的搜索吞吐率,结合之前优化过写请求的经验,想和大家讨论下我对es分片在不同场景下的分配策略的思路   原先普通索引我的分片策略是: 主分片=节点数,副本=1,这样可以保证业务数据一定 ...

  7. Eclipse中高效的快捷键、调试及Junit

    Eclipse中高效的快捷键 当我知道了这些快捷键的用法之后,感觉真的非常兴奋,没想到Eclipse中还有这么多令人惊喜的功能,真的能够提高效率. 内容提示 Alt+/ 用于输入标准库或者keywor ...

  8. spring Batch实现数据库大数据量读写

    spring Batch实现数据库大数据量读写 博客分类: spring springBatchquartz定时调度批处理  1. data-source-context.xml <?xml v ...

  9. SQL 递归使用

    直接贴代码吧= = WITH CTE AS ( -->Begin 一个定位点成员 SELECT COUNTRYORDERID,HSNAME, COUNTRYNAME,PARENTORDERID, ...

  10. R语言基础-数组和列表

    数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, dim),当中data必须 ...