selenium上手
功能自动化
前提
- 自动化的主要目的并不是为了找Bug,是为了证明功能可用
- 不只是所有的功能都可以自动化,如UI
- 并不是所有的项目都可以使用自动化,如selenium只能使用bs项目,小项目不适合使用自动化
- 自动化在手动测试后
- 在软件版本还没有稳定的情况下,千万不要开展自动化
自动化的局限性
- 定制性项目
- 周期很短的项目
- 人体感官与易用性测试
- 涉及物理交互
- 发现缺陷少
- 维护成本高
- 可能会制约软件开发
- 不能灵活处理意外
selenium
selenium: B/S软件功能自动化
IDE: 录制、回放【不会自动打开浏览器】
webdriver: 支持多语言的类库方法
Python 3.4 selenium:2.53.6 firefox: 46
IDE
1、 文件:创建、打开和保存测试案例和测试案例集。
编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。
Options :用于设置seleniunm IDE。
2、用来填写被测网站的地址。
3、速度控制:控制案例的运行速度。
4、运行所有:运行一个测试案例集中的所有案例。
5、运行:运行当前选定的测试案例。
6、暂停/恢复:暂停和恢复测试案例执行。
7、单步:可以运行一个案例中的一行命令。
8、录制:点击之后,开始记录你对浏览器的操作。
9、案例集列表。
10、测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。
11、查看脚本运行通过/失败的个数。
12、当选中前命令对应参数。
13、日志/参考/UI元素/Rollup
webdriver
定位方式
id:html标签的id属性值
name:html标签的name属性值
CSS:css样式选择器 # id选择器
xpath:通过标签在html页面源码路径
绝对路径:/html/body/table/tr/td[2]/input
相对路径:.//input[@aa="abc"]
.//标签名[@属性名="属性值"]
.//*[@aa="abc"]
.//*[@属性名="属性值"]
link:通过超链接标签内容
identifier:优先id的,如果没有再去找name的
js:dom=document.getElementById(“password”)
class:class=
dd=webdriver.Firefox() 打开浏览器
dd.get("url") :打开url对应页面
webdriver:
dd.find_element_by_id("html标签的id属性值")
dd.find_element_by_name("html标签的name属性值")
dd.find_element_by_css_selector("html标签的css样式选择器")
dd.find_element_by_xpath("html标签的xpath路径")
dd.find_element_by_link_text("超链接标签内容")
dd.find_element_by_tag_name("html标签名")
dd.find_element_by_class_name("html的class属性值")
操作:
文本框,密码框,文本域:
清空:dd.find_element_by_....(....).clear()
输入:dd.find_element_by_....(....).send_keys("输入内容")
单选按钮,复选框,超链接,按钮:
点击:dd.find_element_by_....(....).click()
下拉框:
选择:
Select(定位到的一个具体的下拉框).select_by_value("option的value属性值")
切焦点到frame/iframe:
dd.switch_to_frame("frame的id/name属性值")
dd.switch_to.frame("frame的id/name属性值")
当页面有刷新或者有跳转,需要加等待时间
time.sleep(数字秒)
selenium上手的更多相关文章
- Selenium 上手:Selenium扫盲区
Selenium 自述Selenium 是由Jason Huggins软件工程师编写的一个开源的浏览器自动化测试框架.主要用于测试自动化Web UI应用程序. Selenium 工作原理通过编程语言( ...
- selenium js
这几天的任务量比较大,还有一个挺棘手的网站cfda,不巧的是数据量还挺大,40W关于企业信息.上来就是debugger pause,调试中断,开始还是挺懵逼的,但这个还算简单毕竟google,百度,就 ...
- 京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践
1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统,比如后端的服务 API 监控,接口存活.调用.延迟等监控,这些一般都用来监控后台接口数据层面的信息.而且对于大型网站系 ...
- SeleniumIDE从0到1 (Selenium IDE 安装)
换了工作后需要学习到自动化测试,经过一系列的筛选,最终选定了Selenium,原因是因为本人熟悉一点代码,用Selenium比较容易上手.刚开始接触Selenium的小伙伴是不是会觉得不知道从何动手呢 ...
- selenium 基本的键盘方法
今晚不想加班,于是赶紧回来看看书: 1.下了selenium的小工具:FireBug/FirePath. 2.确定了看书顺序,我觉得难度低点开始比较好,所以我还是先看基于Python的selenium ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(一)
话说之前自己写了个selenium的自动化框架,然后又研究了下RF,觉得RF这种基于关键字驱动的框架更为容易上手,当然在做一些比较繁琐的验证时,似乎还不是太灵活,不如自己写几行python来的实惠(也 ...
- Selenium简单介绍
WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...
- 使用python selenium进行自动化functional test
Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...
随机推荐
- Ajax中关于xmlhttp.readyState的值及解释
xmlhttp.readyState的值及解释:0:请求未初始化(还没有调用 open()).1:请求已经建立,但是还没有发送(还没有调用 send()).2:请求已发送,正在处理中(通常现在可以从响 ...
- ios数组基本用法和排序大全
1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject: ...
- LINUX --- echo修改GPIO状态
GPIO sysfs Interface The GPIO sysfs interface allows users to manipulate any GPIO from userspace (al ...
- 036_go语言中的原子计数器
代码演示 package main import ( "fmt" "runtime" "sync/atomic" "time&qu ...
- “随手记”开发记录day17
继续开发账单的图形展示这一部分,丰富“随手记”的显示方法,对我们的APP进行添砖加瓦.
- 【av68676164(p33-p34)】进程通信
4.7.1 匿名管道通信 任务:把一个CMD控制台程序改成窗口程序 "算命大师"程序的改进版 改进目标:标准的Windows窗口程序 (匿名)管道通信机制 管道定义 pipe 定义 ...
- Springboot常用的注解
1.@Controller主要用来修饰类,用来处理http请求 2.@ResponseBody主要用来修饰类和方法.返回字符串和json数据,不用来返回模板. 3.@RestController主要用 ...
- C# ASP 异步存储数据
1.异步委托 在导航栏接收到提交的请求后,调用个各子画面的保存答案方法,之后实例化委托 saveToDB . 当执行BeginInvoke后,服务器会另起线程执行saveToDB里的的方法,因为这里要 ...
- python设计模式之模型-视图-控制器模式
python设计模式之模型-视图-控制器模式 关注点分离( Separation of Concerns, SoC)原则是软件工程相关的设计原则之一. SoC原则背后的思想是将一个应用切分成不同的部分 ...
- Typora markdown代码块显示序号
打开偏好设置,找到代码块 打开显示行号 然后关闭Typora重新打开 此时代码块就有行号了