Selenium命令——Selenese

Selenium提供一系列命令,可以用你能想到的所有方式全面测试你的Web应用系列。这些命令通常被称为Selenese。这些测试命令事实上构成了一种测试语言。

使用Selenese,用户可以通过HTML tags测试UI元素是否存在,测试特殊文本,测试死链接、输入框、下拉列表、提交表单和数据表等。通过扩展Selenium命令支持测试窗口尺寸、鼠标位置、警告、Ajax控件、弹出窗口、事件控制和其他Web应用特性。可以通过如下链接在线查看所在Selenium命令:http://release.seleniumhq.org/selenium-core/1.0.1/reference.html,命令会告诉Selenium工具要做什么,它有三种子类型:Actions、Accessors和Assertions。

(1)Actions决定Selenium工具会怎样操作Web应用系统。例如“点击某个链接”和“选择某个下拉选项”。如果一个Action失败,或者发生了错误,当前测试的执行会被终止。

(2)Accessors检查系统的当前状态,并将结果存放在变量中。例如“storeTitle”命令。它们也被用来自动生产断言。

(3)Assertions类似于Accessors,不过它们验证系统是否遵从于期望的表现。例如“确保页面标题是X”,“验证多选项框X被选中”。所有的Selenium Assertions可以归结为三种模式:“assert”、“verify”和“waitFor”。当一个“assert”失败,测试将被终止。当一个"verify"失败,测试将继续执行,并在日志中记录失败。通常使用“assert”确保测试在正确的页面上运行,接下来使用“verify”来验证表单数据、页签等。“waitFor”命令等待某些条件变为真(在Ajax应用中特别有用)。当条件变为真后,它将立刻成功。在预设时间内条件没有变为真,它将失败并停止测试执行。

Selenium脚本语法

Selenium的verifyText命令有两个参数,如表2-2所示。

命令

参数

参数

verifyText

//div//a[2]

Login

Selenium命令的参数并不总是必需的,它依赖于命令。命令可能要求两个参数,或者一个参数,甚至一个参数也不要。

命令

参数

参数

goBackAndWait

verifyTextPresent

Welcome to My Home Page

type

id=phone

(555)666-7066

type

id=address1

${myVariableAddress}

在Selenium API速查手册中详细描述了每一个命令所需要的参数。参数有很多种,但典型参数如下:

Locator用于定位页面上的元素;

text pattern用于验证或者断言期望的页面内容;

text pattern和selenium variable用于在输入框中输入文本,或者在下拉选项列表选择一个选项。

Selenium-IDE执行的Selenium脚本,通常使用HTML文本格式存储。在HTML文本文件中使用HTML表格存储命令,命令由三列组成。第一列标识Selenium命令,第二列标识目标,最后一列保存值。根据选择Selenium命令不同,第二、三列可能并不需要有值。表中的每一行代表一条Selenium命令。下面举例,测试打开一个页面,验证页面标题,接着验证某些页面内容:

<table>
    <tr><td>open</td><td></td><td>/download/<td></tr>
    <tr><td>assertTitle</td><td></td><td>Downloads</td></tr>
    <tr><td>verifyText</td><td>//h2</td><td>Downloads</td><tr>
</table>

用浏览器打开Selenium脚本对应的HTML文档,如表2-4所示。

命令

标识目标

保存值

open

/doenload/

assertTitle

Downloads

verifyText

//h2

Downloads