下面我将详细介绍 Selenium IDE 的核心命令,包括它们的功能、语法和示例。

Selenium IDE 命令概述
Selenium IDE 中的命令通常由三部分组成:
- 命令: 要执行的操作,如
open,click,type。 - 目标: 命令作用的对象,通常是网页元素的定位器(如
id,name,css,xpath)。 - 值: 命令的参数,如要输入的文本、下拉菜单的选项等。
在 Selenium IDE 的界面中,这三部分分别对应 Command, Target, 和 Value 三个列。
命令分类详解
为了方便学习和查找,我将命令分为以下几大类:
导航与控制命令
这类命令用于控制浏览器和页面的基本导航。

| 命令 | 目标 | 值 | 描述 |
|---|---|---|---|
open |
URL | 在当前窗口中加载一个新页面到浏览器,这是最常用的命令之一。 | |
click |
定位器 | 点击一个元素(如链接、按钮、复选框)。 | |
clickAndWait |
定位器 | 点击一个元素,并等待页面加载完成。注意:在 Selenium 4 中,clickAndWait 已被弃用,推荐使用 click 并结合 waitFor 命令。 |
|
type |
定位器 | 文本 | 在输入框中输入文本,这会清除输入框中原有的内容。 |
typeAndWait |
定位器 | 文本 | 输入文本并等待页面响应(如提交表单后跳转),同样,在 Selenium 4 中已弃用。 |
sendKeys |
定位器 | 文本 | 在元素上模拟键盘输入,与 type 不同,它不会先清除内容,而是追加输入。 |
pause |
毫秒数 | 强制脚本暂停指定的毫秒数。不推荐频繁使用,优先使用智能等待 waitFor。 |
|
close |
关闭当前窗口或标签页。 | ||
select |
定位器 | label=选项文本 |
在下拉菜单中选择一个选项,需要使用特定的语法,如 label=男 或 value=male。 |
selectFrame |
定位器 | 切换到页面内的一个 iframe 或 frame 中,之后的所有操作都针对该 frame。 | |
selectWindow |
name=窗口名 |
切换到另一个浏览器窗口。 | |
goBack |
浏览器后退。 | ||
goForward |
浏览器前进。 | ||
refresh |
刷新当前页面。 |
示例:
- 打开百度首页并搜索 "Selenium IDE"
- Command:
open - Target:
https://www.baidu.com - Value:
- Command:
type - Target:
id=kw - Value:
Selenium IDE - Command:
click - Target:
id=su
- Command:
验证与断言命令
这是自动化测试的核心,用于验证应用是否按预期工作。
| 命令 | 目标 | 值 | 描述 |
|---|---|---|---|
assert |
定位器 | 预期文本 | 断言,如果条件为真,测试继续;如果为假,测试立即停止并失败。 |
verify |
定位器 | 预期文本 | 验证,如果条件为假,测试会记录一个失败,但继续执行后续命令。 |
waitFor |
定位器 | 预期文本 | 等待,它会一直等待,直到条件为真(超时后测试失败),常用于处理异步加载的内容。 |
assertText |
定位器 | 预期文本 | 断言指定元素的文本内容。 |
verifyText |
定位器 | 预期文本 | 验证指定元素的文本内容。 |
assertTitle |
断言当前页面的标题。 | ||
verifyTitle |
验证当前页面的标题。 | ||
assertElementPresent |
定位器 | 断言元素是否存在(DOM 中)。 | |
verifyElementPresent |
定位器 | 验证元素是否存在。 | |
assertVisible |
定位器 | 断言元素是否可见(不仅存在,display 属性不为 none)。 |
|
verifyVisible |
定位器 | 验证元素是否可见。 |
关键区别:
- Assert (断言): 严格检查,如果失败,整个测试用例终止,适用于检查核心流程是否走通。
- Verify (验证): 柔性检查,如果失败,只记录错误,测试继续,适用于检查非核心的附加信息。
- WaitFor (等待): 智能等待,解决了因页面加载慢导致的不稳定问题。
示例:

- 验证搜索结果页面标题
- Command:
verifyTitle - Target:
Selenium IDE_百度搜索 - Value:
- Command:
- 等待一个动态加载的元素出现
- Command:
waitForElementVisible - Target:
id=dynamic-content - Value:
- Command:
用户交互命令
除了基础的 click 和 type,还有一些更高级的交互命令。
| 命令 | 目标 | 值 | 描述 |
|---|---|---|---|
doubleClick |
定位器 | 双击一个元素。 | |
mouseDown |
定位器 | 在元素上按下鼠标左键。 | |
mouseUp |
定位器 | 在元素上释放鼠标左键。 | |
mouseMove |
定位器 | 将鼠标移动到元素的中心。 | |
mouseOver |
定位器 | 将鼠标悬停在元素上(mouseMove 的别名)。 |
|
dragAndDrop |
源元素定位器 |
目标元素定位器 |
将一个元素拖拽到另一个元素上。 |
focus |
定位器 | 将焦点(键盘输入焦点)转移到指定元素上。 | |
check |
定位器 | 选中一个复选框,如果已经选中,则无操作。 | |
uncheck |
定位器 | 取消选中一个复选框,如果已经取消,则无操作。 | |
selectWindow |
name=窗口名 |
切换到指定名称的窗口。 |
脚本与存储命令
用于执行 JavaScript 代码或存储/获取数据。
| 命令 | 目标 | 值 | 描述 |
|---|---|---|---|
executeScript |
js:JavaScript代码 |
在浏览器中执行一段 JavaScript 代码,可以获取返回值。 | |
store |
变量名 | 存储的值 | 将一个值存储为一个变量,供后续命令使用。 |
storeText |
变量名 | 定位器 | 获取元素的文本内容并存储到变量中。 |
storeAttribute |
变量名 | 定位器@属性名 |
获取元素的属性值并存储到变量中。id=myLink@href 获取 href 属性。 |
echo |
${变量名} |
在控制台(Selenium IDE 的日志)中打印变量或文本。 | |
storeTitle |
变量名 | 将当前页面标题存储到变量中。 |
示例:
- 获取一个链接的 URL 并打印
- Command:
storeAttribute - Target:
id=myLink@href - Value:
linkUrl - Command:
echo - Target:
链接的 URL 是: ${linkUrl} - Value:
- Command:
元素定位器
这是所有命令中“目标”部分的核心,Selenium IDE 支持多种定位策略,按推荐顺序排列:
-
ID (
id=)- 语法:
id=elementId - 描述: 最可靠、最快的定位方式,推荐优先使用。
- 示例:
id=username
- 语法:
-
Name (
name=)- 语法:
name=elementName - 描述: 次优选择,但注意
name在页面中可能不唯一。 - 示例:
name=q
- 语法:
-
CSS Selector (
css=)- 语法:
css=cssSelector - 描述: 强大且灵活,推荐在 ID 和 Name 不可用时使用。
- 示例:
css=input[type='text']或css=#username.submit-btn
- 语法:
-
XPath (
xpath=)- 语法:
xpath=//xpathExpression - 描述: 功能最强大,可以定位任何元素,但速度较慢,且表达式脆弱,容易因页面结构变化而失效,作为最后的选择。
- 示例:
xpath=//div[@id='login']//input[@name='password']
- 语法:
-
Link Text (
link=)- 语法:
link=链接文本 - 描述: 专门用于定位页面上的超链接(
<a>标签)。 - 示例:
link=点击这里
- 语法:
-
Partial Link Text (
partialLinkText=)- 语法:
partialLinkText=部分文本 - 描述: 通过链接文本的一部分来定位链接,可能不精确,慎用。
- 示例:
partialLinkText=点击
- 语法:
-
Tag Name (
tag=)- 语法:
tag=tagName - 描述: 通过标签名定位,通常用于定位多个相同类型的元素(如
tr,td)。 - 示例:
tag=table
- 语法:
-
Class Name (
className=)- 语法:
className=className - 描述: 通过元素的 class 属性定位,同样,class 可能不唯一。
- 示例:
className=active
- 语法:
最佳实践与技巧
- 优先使用智能等待: 尽量使用
waitFor*系列命令(如waitForElementVisible)而不是pause,让测试更稳定。 - 选择稳定的定位器: 优先使用
id,其次是name和css,谨慎使用xpath。 - 合理使用 Assert 和 Verify: 对于关键路径使用
assert,对于非关键信息使用verify。 - 使用存储变量: 将动态数据(如生成的订单号)存储到变量中,用于后续的断言或传递给其他测试。
- 利用“记录”功能: Selenium IDE 的最大优势是录制,先录制基本流程,再通过编辑命令来增强和优化脚本。
- 格式化代码: 在 IDE 中使用
Ctrl + B(Windows) 或Cmd + B(Mac) 格式化测试用例,使其更易读。
掌握这些命令和最佳实践,你就可以使用 Selenium IDE 高效地创建和维护各种 Web 应用的自动化测试脚本了。
