【Selenium】Selenium IDE(alt+ctrl+s)
ttp://www.yiibai.com/selenium/selenium_ide_tool_features.html 学习
Selenium IDE安装
http://seleniumhq.org/download
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
录制测试用例
默认开启录制
单击○取消录制
新建用例
Test Case:测试用例
Test Suite:测试套件
Base URL:www.baidu.com
关键字驱动的测试方式
Command:要执行的操作是什么
Target:操作的界面元素是哪个
Value:操作时使用的值是多少
运行结果
第一行对目标“/”,使用open命令打开
第二行找打id为kw元素,使用type命令输入内容,输入的值为selenium
第三行找到id为su的元素,执行click命令
重复执行
Fast Slow控制时间间隔
Play entire test suite:执行整个测试套件,左侧列表所有的测试用例
Play current test case:执行当前选中测试用例
编写测试用例
1文件→New Test Case
2操作步骤表上单击右键→Insert New Command
Command:open
Target:https://www.2345.com/?kgooge
3打开页面,搜索框右键,查看元素,看id
Selenium命令分类
1Action(操作):操作应用程序状态
1浏览器的操作
(1)open(url):打开指定Url,URL分为相对,绝对,open命令将等待加载完毕再执行下一个命令
参数:Target:要打开的URL
注意:
*当Target为空时,打开Base URL中的地址
*当Target不为空时,打开Base URL+Targe页面
*当Target以http://开头时,忽略Base URL,直接打开Target中的地址
(2)go back() 后退button,没有参数
(3)refresh 刷新,没有参数
(4)windowFocus 激活当前窗口,没有参数
(5)windowMaximize 窗口最大化,没有参数
(6)close 关闭窗口,没有参数
2界面元素的基本操作
(1)type(locator,value):input类型元素中输入值,用键盘输入,下拉框,列表框,复选框
参数:Target:元素定位表达式
Value:输入值
(2)typeKeys(locator,value):模拟键盘一个一个输入,相当调用keyDown、keyUp、KeyPress,汉字,先type设置字段的值,typeKey触发键盘事件
参数:Target:元素定位表达式
Value:输入值
(3)click(locator):单击链接、复选单选框,如有加载+waitForPageToLoad或clickAndWait
参数:Target:元素定位表达式
(4)clickAt(locator,coordString)相对坐标
参数:Target:元素定位表达式
Value:(x,y)(1,1)
(5)doubleClick(locator):单击链接、复选单选框,如有加载+waitForPageToLoad或clickAndWait
参数:Target:元素定位表达式
(6)doubleClickAt(locator,coordString)相对坐标
参数:Target:元素定位表达式
Value:(x,y)(1,1)
(7)select(selectLocator,optionLocator):下拉框
参数:Target:下拉框定位表达式
value:下拉框选项的定位表达式
label=文本值,label=three(默认)
value=真实值,label=3
id=id,id=option3
index=索引值,从0开始,index=2
(8)check(locator):复选框、单选框,一般不用
参数:Target:元素定位表达式
(9)uncheck(locator):取消复选框、单选框勾选
参数:Target:元素定位表达式
(10)focus(locator):焦点转移到指定元素
参数:Target:元素定位表达式
3键盘鼠标模拟操作
键盘
altKeyDown():Alt键不放,直到调用altKeyUp()或重新加载新的页面,没有参数
altKeyUp():松开alt键,没有参数
controlKeyDown():Ctrl键不放,直到调用ctrlKeyUp()或重新加载新的页面,没有参数
controlKeyUp():松开Ctrl,没有参数
shiftlKeyDown():Shift键不放,直到调用stiftKeyUp()或重新加载新的页面,没有参数
shiftKeyUp():松开Shift,没有参数
keyDown():按下某个键不放,直到调用keyUp()
Target:元素的定位表达式
Value:要输入字符串,按键的ASCLL码
keyPress(locator,keySequence):敲击了某个按键
Target:元素的定位表达式
Value:要输入字符串,按键的ASCLL码
keyUp(locator,keySequence):松开某个按键
Target:元素的定位表达式
Value:要输入字符串,按键的ASCLL码
鼠标
mouseDown(locator):指定元素上按下鼠标左键不放
Target:元素的定位表达式
mouseDownAt(locator,coordString):指定元素上按下鼠标左键不放,相对坐标
Target:元素的定位表达式
value:(x,y)
mouseDownRight(locator):指定元素上按下鼠标右键不放
Target:元素的定位表达式
mouseDownAt(locator,coordString):指定元素上按下鼠标右键不放,相对坐标
Target:元素的定位表达式
value:(x,y)
mouseUp(locator):松开指定元素上按下的鼠标左键
Target:元素的定位表达式
mouseUpAt(locator,coordString):松开指定元素上按下的鼠标左键,相对坐标
Target:元素的定位表达式
value:(x,y)
mouseUpRight(locator):松开指定元素上按下的鼠标右键
Target:元素的定位表达式
mouseUpAt(locator,coordString):松开指定元素上按下的鼠标右键,相对坐标
Target:元素的定位表达式
value:(x,y)
mouseOver(locator):鼠标光标移动到指定元素内
Target:元素的定位表达式
mouseOut(locator):鼠标光标移动到指定元素外
Target:元素的定位表达式
Ctrl+Alt+C:CtrlKeyDown、altKeyDown、keyDown,然后一个一个keyup
4设置类操作
(1)setTimeout(timeout):执行操作最大等待时间,open或以waitFor开头或AndWait后缀的命令,默认超时时间30秒
Target:超时时间,单位毫秒
(2)setSpeed(value):执行速度,默认0毫秒
Target:执行的时间间隔,单位毫秒
5测试调控/调试类操作
(1)pause(waitTime):暂停
Target:暂停时间,毫秒
(2)break():暂停当前正在执行的测试,直到用户手动单击继续按钮,没有参数
(3)captureEntirePageScreenshot(filename,kwargs):当前窗口截图PNG文件
Target:截图保存路径:D:\123.png
(4)highlight(locator):暂时北京为黄色
Target:元素的定位表达式
(5)echo(message):信息打印
Target:要打印的信息
2Accessor(存储):检查应用程序状态,并将结果存储在变量中,“storeTitle”自动生成Assertion
(1)store(expression,variableName)最基本的存储方式,指定的值存储在变量中
Traget:要存储的值
Value:变量名称
(2)storeTitle(variableName):存放当前网页的标题
Target:变量名
(3)storeLocation(variableName):存储URL
Target:变量名
(4)storeValue(locator,variableName):input元素存放的值,文本框、复选框、单选框的值,on勾选,off未勾选
Target:元素的定位表达式
Value:变量名
(5)storeEditable(locator,variableName):input元素的可编辑状态,文本框、复选框、单选框可编辑状态,可编辑返回true,否则false
Target:元素的定位表达式
Value:变量名
(6)storeText(locator,variableName):元素文本值
Target:元素的定位表达式
Value:变量名
(7)storeChecked(locator,variableName):复选框、单选框的勾选情况,返回true勾选,false未勾选
Target:元素的定位表达式
Value:变量名
(8)storeSelectedIndex(locator,variableName):索引,0开始
(9)storeSelectedLabel(locator,variableName):文本值
(10)storeSelectedValue(locator,variableName):真实值
Target:元素的定位表达式
Value:变量名
(11)storeSelectedOptions(selectLocator,variableName):列表中所有选项文本,“,”隔开
Target:元素的定位表达式
Value:变量名
(12)storeTable(selectLocator,variableName):表格中某个单元格(td元素)的值,行号、列号从0开始
Target:表格的定位表达式,行号.列号,foo.1.4
Value:变量名
(13)storeAttribute(selectLocator,variableName):获取指定属性的值
Target:属性的定位表达式,元素的定位表达式=@属性名称,foo@bar
Value:变量名
(14)storeTextPresent(pattern,variableName):指定的文本是否在页面中出现,出现返回true,否则false
Target:查找文本
Value:变量名
(15)storeElementPresent(locator,variableName):元素是否存在页面,元素出现返回true,否则false
Target:元素的定位表达式
Value:变量名
(16)storeVisible(locator,variableName):元素的visibility属性为hidden或者display属性为none的元素是否存在界面
Target:元素的定位表达式
Value:变量名
(17)storeSpeed(variableName):执行速度,默认0
Target:变量名
3Assertion(断言):验证应用程序的状态
*使用assertText、VerifyText、waitForText
(1)assert:assert失败测试会中断,单个asseert来确认当前应用程序是否位于正确的页面
(2)verify:verify失败会记录,测试继续,测试表单字段的值、标签值
(3)waitFor:执行等待,直到等待条件为真,测试通过
①验证网页的标题是否等于或不等于预期值
assertTitle
assertNotTitle
verifyTitle
verifyNotTitle
waitForTitle
waitForNotTitle
参数:Target:对比预期值
②验证网页的URL是否等于或不等于预期值
assertLocation
assertNotLocation
verifyLocation
verifyNotLocation
waitForLocation
waitForNotLocation
参数:Target:对比预期值
③验证input元素的值是否等于或不等于预期值
assertValue
assertNotValue
verifyValue
verifyNotValue
waitForValue
waitForNotValue
参数:Target:元素的定位表达式
Value:对比预期值
输入不是空值
③验证input元素可编辑状态是否为预期值状态
assertValue
assertNotValue
verifyValue
verifyNotValue
waitForValue
waitForNotValue
参数:Target:元素的定位表达式
Value:对比预期值
④验证input元素的可编辑状态是否为预期状态
assertEditable
assertNotEditable
verifyEditable
verifyNotEditable
waitForEditable
waitForNotEditable
参数:Target:元素的定位表达式
⑤验证某个元素的文本值是否等于预期值
assertText
assertNotText
verifyText
verifyNotText
waitForText
waitForNotText
参数:Target:元素的定位表达式
Value:对比预期值
⑥验证复选框或单选框的勾选情况是否符合预期
assertChecked
assertNotChecked
verifyChecked
verifyNotChecked
waitForChecked
waitForNotChecked
unCheck
参数:Target:元素的定位表达式
⑦验证所选项在列表中的索引是否符合预期值(从0开始)
assertSelectedIndex
assertNotSelectedIndex
verifySelectedIndex
verifyNotSelectedIndex
waitForSelectedIndex
waitForNotSelectedIndex
参数:Target:元素的定位表达式
⑧验证指定列表中所选的文本值是否符合预期值(从0开始)
assertSelectedLabel
assertNotSelectedLabel
verifySelectedLabel
verifyNotSelectedLabel
waitForSelectedLabel
waitForNotSelectedLabel
参数:Target:元素的定位表达式
Value:对比预期值
⑨验证指定列表中所选的真实值(value属性)值是否符合预期值(从0开始)
assertSelectedValue
assertNotSelectedValue
verifySelectedLabel
verifyNotSelectedValue
waitForSelectedValue
waitForNotSelectedValue
参数:Target:元素的定位表达式
Value:对比预期值
⑩验证指定列表中所有选项的文本是否符合预期值
assertSelectedOptions
assertNotSelectedOptions
verifySelectedOptions
verifyNotSelectedOptions
waitForSelectedOptions
waitForNotSelectedOptions
参数:Target:元素的定位表达式
Value:对比预期值
例:assertSelectedOptions name=ms 按时间倒叙,按时间顺序,按相关性排序
assertNotSelectedOptions name=ms
⑪验证表格(table元素)中某个单元格(td元素)的值是否符合预期值
assertTable
assertNotTable
verifyTable
verifyNotTable
waitForTable
waitForNotTable
参数:Target:元素的定位表达式.行号.列号
Value:对比预期值
⑫验证指定属性的值是否符合预期值
assertAttribute
assertNotAttribute
verifyAttribute
verifyNotAttribute
waitForAttribute
waitForNotAttribute
参数:Target:属性的定位表达式@属性名
Value:对比预期值
例:assertAttribute name=btnK@Value Google搜索
⑬验证指定的文本是否在页面中出现
assertTextPresent
assertTextNotPresent
verifyTextPresent
verifyTextNotPresent
waitForTextPresent
waitForTextNotPresent
参数:Target:属性的定位表达式@属性名
⑭验证指定元素是否在存在于页面上
assertElementPresent
assertElementNotPresent
verifyElementPresent
verifyElementNotPresent
waitForElementPresent
waitForElementNotPresent
参数:Target:属性的定位表达式@属性名
⑮验证页面中是否显示指定元素
assertVisible
assertNotVisible
verifyVisible
verifyNotVisible
waitForVisible
waitFortNotVisible
参数:Target:属性的定位表达式@属性名
更多:http://release.seleniumhp.org/selenium-core/1.0.1/reference.html
Target
定位类型=定位值
①identifier定位:默认,identifier=
②id定位,id=
③name定位 过滤:value,name= value=
④XPath定位
1<html>
2<body>
3<form id="loginForm">
4<input name="username" type="text"/>
5<input name="password" type="password"/>
6<input name="continue" type="submit" value="Login"/>
7<input name="continue" type="button" value="Clear"/>
8</form>
9</body>
10</html>
Target表达式返回的页面元素
*/html/body/form[1]返回第三行form元素
*//form[@id='loginForm']返回第三行form元素
*//form[input^@name='username']返回第三行form元素
*//input[@name='username']返回第四行元素
*//form[@id='loginForm']/input[1]返回第四行元素
*//form[@name='continue'][@type='button']返回第七行元素
*//form[@id='loginForm']/input[4]返回第七行元素
⑤链接文字定位
1<html>
2<body>
3<p> Are you sure you want to do this?</p>
4<a href="continue.html">Continue</a>
5<a href="cancel.htmll">Cancel</a>
6</body>
7</html>
Target表达式返回的页面元素
*link=Continue 返回第四行元素
*link=Cancel 返回第五行元素
⑥DOM定位
1<html>
2<body>
3<form id="loginForm">
4<input name="username" type="text"/>
5<input name="password" type="password"/>
6<input name="continue" type="submit" value="Login"/>
7<input name="continue" type="button" value="Clear"/>
8</form>
9</body>
10</html>
使用不同的Target表达式返回页面元素
dom=document.getElementById('loginForm')返回第三行元素
dom=document.forms['loginForm']返回第三行元素
dom=document.forms[0]返回第三行元素
dom=document.forms[0].username返回第4行元素
dom=document.forms[0].element['username']返回第4行元素
dom=document.forms[0].element[0]返回第4行元素
dom=document.forms[0].element[3]返回第7行元素
⑦CSS定位
1<html>
2<body>
3<form id="loginForm">
4<input class ="required" name="username" type="text"/>
5<input class ="required passfield" name="password" type="password"/>
6<input name="continue" type="submit" value="Login"/>
7<input name="continue" type="button" value="Clear"/>
8</form>
9</body>
10</html>
使用不同的Target表达式返回页面元素
css=form#loginForm返回第3行代码
css=input[name="username"]返回第4行代码
css=input.required[type="text"]返回第4行代码
css=input.passfield返回第5行代码
css=#loginForm input[type="button"]返回第4行代码
css=#loginForm input:nth-child返回第5行代码
http://www.w3.org/TR/css3-selectors
value
①带变量的字符串:由两个变量组成firstName和lastName
value Full name is:${firstName} ${lastName}
②带JavaScript的字符串::由两个变量组成firstName和lastName
value JavaScript{“Full name is:“+storedVars[“firstName”].toUpperCase()+""+storeVars $["lastName"]}.toUpperCase()}
日志与引用
Log、Reference(引用)、UI-Element(UI元素)、Rollup选项卡
单机info按钮可对log进行过滤,clean按钮将清除所有日志
命令复制
默认复制为html
option→ClipBoardFormat
命令导出为代码
文件→Export Test Case as 或 文件→Export Test Suite as
【Selenium】Selenium IDE(alt+ctrl+s)的更多相关文章
- 【RDA】使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查
[RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Ag ...
- 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)
第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...
- 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)
第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...
- 【12c】扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE
[12c]扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE 在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的 ...
- POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 【USACO】距离咨询(最近公共祖先)
POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 [USACO]距离咨询(最近公共祖先) Description F ...
- CJOJ 1070 【Uva】嵌套矩形(动态规划 图论)
CJOJ 1070 [Uva]嵌套矩形(动态规划 图论) Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, ...
- 【Luogu3457】POW-The Flood(并查集)
[Luogu3457]POW-The Flood(并查集) 题面 洛谷 题解 我们知道,如果一个点和一个海拔不高于它的点相连 那么连在那个点是更优的,所以考虑按照每个点的海拔排序 既然按照海拔排序,相 ...
- 【BZOJ2160】拉拉队排练(回文树)
[BZOJ2160]拉拉队排练(回文树) 题面 BZOJ 题解 看着题目, 直接构建回文树 求出每个回文串的出现次数 直接按照长度\(sort\)一下就行了 然后快速幂算一下答案就出来了 这题貌似可以 ...
- 【Uoj34】多项式乘法(NTT,FFT)
[Uoj34]多项式乘法(NTT,FFT) 题面 uoj 题解 首先多项式乘法用\(FFT\)是一个很久很久以前就写过的东西 直接贴一下代码吧.. #include<iostream> # ...
随机推荐
- Xamarin.Android 绑定友盟社会化分享组件
Xamarin.Android 绑定友盟社会化分享组件 最近在开发博客园Android App的时候需要用到友盟社会化分享组件,在github上搜了一下都没有找到最新版本绑定好的项目,就自己动手来绑定 ...
- 做一个常规的banner图——负边距的使用、banner图的拼法
在这之前,首先要了解如何设置块级元素在块级元素水平居中 方法: 设置子容器为定位元素 水平居中 left:50%:margin-left:-width/2: 垂直居中 top:50%:margin-t ...
- JQuery使用mousedown和mouseup简单判断鼠标按下与释放位置是否相同
在JQuery中,我们可以利用mousedown.mouseup来跟踪页面的鼠标按下与释放事件. 如何获取鼠标的位置信息呢?事件event的pageX和pageY属性可以让我们获得鼠标在页面中的具体位 ...
- CKEditor不借助CKFinder实现图片上传(.net版 ashx实现)
参考博客:http://blog.csdn.net/mydwr/article/details/8669594 本人版本:4.4.6 打开文件:ckeditor/plugins/image/dialo ...
- VMware安装CentOS 6.7系统
VMware安装CentOS 6.7系统 1. 安装前的准备 a) VMware虚拟机软件 b) CentOS 6.7镜像 c) Windows电脑一台 2. 开始安装 a) 打开VMware软件 b ...
- HTML5工具做屏幕自适应的两种方法
近一两年,HTML5在中国很火,也出了不少HTML5工具和模板.别的先不说,对于不同的H5工具,解决屏幕自适应问题的区别是什么? 简单来说,感应式设计是当用不同设备访问时,能够根据设备的宽度和高度对设 ...
- Python输入一个数字打印等腰三角形
要求 用户输入一个数字,按照数字打印出等腰三角形 思路 1,用户输入的数字为n代表一共有多少行 2,使用一个循环带两个for循环,第一层循环是循环行数,第二层两个平行for循环一个打印空格一个打印*号 ...
- 使用 Mono.Cecil 辅助 Unity3D 手游进行性能测试
Unity3D 引擎在 UnityEngine 名字空间下,提供了 Profiler 类(Unity 5.6 开始似乎改变了这个名字空间),用于辅助对项目性能进行测试.以 Android 平台为例 ...
- 新手上路---Java学习知识梳理
我随笔 我相信也有那么一些人跟我一样,脱下军装后对未来感到迷茫,不知所措甚至怀疑起自己的能力,自身体会的经历过才能明白其中的辛酸!归咎一切:心态,信心,自信!再穷不过乞讨,不死终将出头.好了,闲言碎语 ...
- swap与dd命令使用详解
处理交换文件和分区 交换分区是系统RAM 的补充 基本设置包括: 创建交换分区或者文件 使用mkswap 写入特殊签名 在/etc/fstab 文件中添加适当的条目 使用swapon -a 挂载交换分 ...