基本介绍:

Selenium工具专门为WEB应用程序编写的一个验收测试工具。

Selenium的核心:browser bot,是用JAVASCRIPT编写的。

Selenium工具有4种:Selenium IDE, Selenium Control, Selenium Core

这儿我们主要总结了Selenium-IDE工具

Selenium-IDE只限于firefox浏览器中使用。

Selenium命令分成三类:

操作(action)、辅助(accessors)和断言(assertion):

操作action:

模拟用户与 Web 应用程序的交互。一般用于操作应用程序的状态。

如点击链接,选择选项的方式进行工作。如果一个动作执行失败,或是有错误,当前的测试将会停止执行。

操作中常见命令有:open(打开页面)

click(点击)

clickAndWait(点击并等待)

type(文本类型)

select(选择下拉菜单)

selectWindow(选择弹出窗口)

pause(等待指定时间,以毫秒为单位,即要睡眠的时间)

setSpeed(设定执行速度。以毫秒延迟间隔长度。默认没有延迟,即为0)

setTimeout(指定等待动作完成的等待时间。默认为30秒。

需要等待的动作包括了OPEN 和WAITFOR)

goBack(模拟用户点击其浏览器上的“back”按钮)

close(模拟用户点击弹出窗体或表单标题栏上的”关闭”按钮)

click与clickAndWait的区别:

例如对比录制脚本:

Comand       Target

click               css=input[type=submit]            //句一

clickAndWait   css=input[type=submiit]           //句二

转成PHPUNIT后代码为:

$this->click(“css=input[type=submit]“);         //此句对应上面的 句一

$this->click(“css=input[type=submit]“);         //此句和下一句,对应上面的 句二

$this->waitForPageToLoad(“30000″);

区别在于:clickAndWait后会有一个默认的页面等待时间为30秒;而click没有等待时间;

Andwait这个后缀,告诉我们,该命令将使浏览器向服务器产生一个请求,使Selenium等待加载一个新的页面。

辅助accessors:

这是辅助工具。用于检查应用程序的状态并将结果存储到变量中。

如:storeElementPresent(locator,variableName)

其中参数:locator 表示元素定位器;variableName 用于存储结果的变量名。

即将locator定位到的状态存储到variableName变量中。

如果该元素出现返回true,否则返回false

可同断言一同使用。

断言assertion:

验证应用程序的状态是否同所期望的一致。

常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选。

断言被用于三种模式: assert 、verify、waitfor

Assert 失败时,该测试将终止。

Verify 失败时,该测试将继续执行,并将错误记入日显示屏。也就是说允许此单个 验证通过。确保应用程序在正确的页面上。

Waitfor用于等待某些条件变为真。可用于AJAX应用程序的测试。

如果该条件为真,他们将立即成功执行。如果该条件不为真,则将失败并暂停测试。直到超过当前所设定的超时时间。 一般跟setTimeout时间一起用

断言常用的有:

assertLocation(判断当前是在正确的页面)、

assertTitle(检查当前页面的title是否正确)、

assertValue(检查input的值, checkbox或radio,有值为”on”无为”off”)、

assertSelected(检查select的下拉菜单中选中是否正确)、

assertSelectedOptions(检查下拉菜单中的选项的是否正确)、

assertText(检查指定元素的文本)、

assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)、

assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)、

assertAttribute(检查当前指定元素的属性的值)、

assertTable(检查table里的某个cell中的值)、

assertEditable(检查指定的input是否可以编辑)、

assertNotEditable(检查指定的input是否不可以编辑)、

assertAlert(检查是否有产生带指定message的alert对话框)、

waitForElementPresent (等待检验某元素的存在。为真时,则执行。)

Selenium 使用方法小结的更多相关文章

  1. 在Linux下禁用IPv6的方法小结

    在Linux下禁用IPv6的方法小结--http://www.jb51.net/LINUXjishu/335724.html 这篇文章主要介绍了在Linux下禁用IPv6的方法小结,禁用IPv6的操作 ...

  2. 【转】TextView长按复制实现方法小结

    有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特 ...

  3. static使用方法小结

    static使用方法小结 statickeyword是C, C++中都存在的keyword, 它主要有三种使用方式, 当中前两种仅仅指在C语言中使用, 第三种在C++中使用(C,C++中详细细微操作不 ...

  4. T-SQL切割字符串方法小结

    T-SQL切割字符串方法小结,只有表值函数那个是自己的思想,其它都是来源于网络的思想,请大家不要笑话,嘻嘻~网上大牛太多,这点东西虽然上不了台面,但是也算是自己的一个学习吧,能够对一个人有用也行.再不 ...

  5. PowerDesigner实用方法小结(1)

    PowerDesigner使用方法小结 PowerDesigner多用来进行数据库模型设计,具有SQL语句自动生成等功能.当然,也有不少缺点,比如团队分享. 一.设置PowerDesigner模型视图 ...

  6. asp.net检查验证字符串是否为纯数字方法小结

    原文  asp.net检查验证字符串是否为纯数字方法小结 在asp.net中验证字符串是不是为数字我们没有像php中那么多丰富的函数来直接使用,这里我整理了一些比较实例的验证字符串是否为纯数字方法代码 ...

  7. (转)java判断string变量是否是数字的六种方法小结

    java判断string变量是否是数字的六种方法小结 (2012-10-17 17:00:17) 转载▼ 标签: it 分类: 转发 1.用JAVA自带的函数 public static boolea ...

  8. css清除浮动方法小结

    清除浮动其实主要解决的就是高度塌陷问题,具体在此不再赘述~~~那些年我们一起清除过的浮动(大佬博客,写的挺不错) 方法小结:1. 1)添加额外标签 这是在学校老师就告诉我们的 一种方法,通过在浮动元素 ...

  9. asp.net(c#)网页跳转 方法小结

    返回 打印 asp.net(c#)网页跳转七种方法小结_实用技巧_脚本之家 在asp.net下,经常需要页面的跳转,下面是具体的几种方法.跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于. ...

随机推荐

  1. iOS runtime 与 runloop

    runtime是运行时机制,就是运行到的时候才会执行的机制(类似于栏加载)属于时间先后性质的 runloop 是主线程的运行的意思   属于 (loop) 循环性质的 以下是 具体点的 解释: run ...

  2. Duilib介绍以及各个类的简介

    转自http://note.sdo.com/u/icez/n/mvO-X~jyVnpFnM01A0000m DirectUI意为直接在父窗口上绘图(Paint on parent dc directl ...

  3. poj 2777 Count Color(线段树)

    题目地址:http://poj.org/problem?id=2777 Count Color Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  4. Delphi XE5 android 捕获几个事件

    以下代码能监控到以下几个事件: FinishedLaunching     BecameActive     WillBecomeInactive    EnteredBackground    Wi ...

  5. uva 10827

    与108类似 多加了两层循环 水过 #include <iostream> #include <cstring> #include <cstdio> #includ ...

  6. 线程以及数据对象的wait()和notifyAll()方法

    正在运行的程序称作一个进程,一个进程可以包含多个线程,这些线程可以共享进程的资源,它们共用一块存储空间.那么,各个线程在访问同一个数据对象的同时,可能引起冲突,以生产者.消费者为例,就会出现队列中没有 ...

  7. linux 文件比对总结

    1. 过滤a.log的重复数据 #统计 cat datatest.log|sort|uniq -d |wc -l #放入b.log cat datatest.log|sort|uniq -d > ...

  8. Jmeter java协议测试jar和依赖jar的路径研究

    昨天在使用2.12版本的jmeter时,执行多机负载测试一直报错,最终查明是使用不当的问题,现将详情记录如下,使用jmeter测试java协议脚本时要注意以下几点: 1. jar包的方式路径一定是这样 ...

  9. undefined与null的区别---js

    不错... http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html

  10. 绕过图片格式限制上传木马获取WebShell

    思路: 图片上传功能中,前端页面上传的是.png格式的图片文件,但是抓包Request中修改图片后缀为.php 可以绕过对上传文件格式的限制,文件的上传路径可以在上传后的页面或查看上传成功后的resp ...