菜鸟科技网

Selenium IDE 命令有哪些常用技巧?

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

Selenium IDE 命令有哪些常用技巧?-图1
(图片来源网络,侵删)

Selenium IDE 命令概述

Selenium IDE 中的命令通常由三部分组成:

  1. 命令: 要执行的操作,如 open, click, type
  2. 目标: 命令作用的对象,通常是网页元素的定位器(如 id, name, css, xpath)。
  3. : 命令的参数,如要输入的文本、下拉菜单的选项等。

在 Selenium IDE 的界面中,这三部分分别对应 Command, Target, 和 Value 三个列。


命令分类详解

为了方便学习和查找,我将命令分为以下几大类:

导航与控制命令

这类命令用于控制浏览器和页面的基本导航。

Selenium IDE 命令有哪些常用技巧?-图2
(图片来源网络,侵删)
命令 目标 描述
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 刷新当前页面。

示例:

  1. 打开百度首页并搜索 "Selenium IDE"
    • Command: open
    • Target: https://www.baidu.com
    • Value:
    • Command: type
    • Target: id=kw
    • Value: Selenium IDE
    • Command: click
    • Target: id=su

验证与断言命令

这是自动化测试的核心,用于验证应用是否按预期工作。

命令 目标 描述
assert 定位器 预期文本 断言,如果条件为真,测试继续;如果为假,测试立即停止并失败。
verify 定位器 预期文本 验证,如果条件为假,测试会记录一个失败,但继续执行后续命令。
waitFor 定位器 预期文本 等待,它会一直等待,直到条件为真(超时后测试失败),常用于处理异步加载的内容。
assertText 定位器 预期文本 断言指定元素的文本内容。
verifyText 定位器 预期文本 验证指定元素的文本内容。
assertTitle 断言当前页面的标题。
verifyTitle 验证当前页面的标题。
assertElementPresent 定位器 断言元素是否存在(DOM 中)。
verifyElementPresent 定位器 验证元素是否存在。
assertVisible 定位器 断言元素是否可见(不仅存在,display 属性不为 none)。
verifyVisible 定位器 验证元素是否可见。

关键区别:

  • Assert (断言): 严格检查,如果失败,整个测试用例终止,适用于检查核心流程是否走通。
  • Verify (验证): 柔性检查,如果失败,只记录错误,测试继续,适用于检查非核心的附加信息。
  • WaitFor (等待): 智能等待,解决了因页面加载慢导致的不稳定问题。

示例:

Selenium IDE 命令有哪些常用技巧?-图3
(图片来源网络,侵删)
  1. 验证搜索结果页面标题
    • Command: verifyTitle
    • Target: Selenium IDE_百度搜索
    • Value:
  2. 等待一个动态加载的元素出现
    • Command: waitForElementVisible
    • Target: id=dynamic-content
    • Value:

用户交互命令

除了基础的 clicktype,还有一些更高级的交互命令。

命令 目标 描述
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 变量名 将当前页面标题存储到变量中。

示例:

  1. 获取一个链接的 URL 并打印
    • Command: storeAttribute
    • Target: id=myLink@href
    • Value: linkUrl
    • Command: echo
    • Target: 链接的 URL 是: ${linkUrl}
    • Value:

元素定位器

这是所有命令中“目标”部分的核心,Selenium IDE 支持多种定位策略,按推荐顺序排列:

  1. ID (id=)

    • 语法: id=elementId
    • 描述: 最可靠、最快的定位方式,推荐优先使用。
    • 示例: id=username
  2. Name (name=)

    • 语法: name=elementName
    • 描述: 次优选择,但注意 name 在页面中可能不唯一。
    • 示例: name=q
  3. CSS Selector (css=)

    • 语法: css=cssSelector
    • 描述: 强大且灵活,推荐在 ID 和 Name 不可用时使用。
    • 示例: css=input[type='text']css=#username.submit-btn
  4. XPath (xpath=)

    • 语法: xpath=//xpathExpression
    • 描述: 功能最强大,可以定位任何元素,但速度较慢,且表达式脆弱,容易因页面结构变化而失效,作为最后的选择。
    • 示例: xpath=//div[@id='login']//input[@name='password']
  5. Link Text (link=)

    • 语法: link=链接文本
    • 描述: 专门用于定位页面上的超链接(<a> 标签)。
    • 示例: link=点击这里
  6. Partial Link Text (partialLinkText=)

    • 语法: partialLinkText=部分文本
    • 描述: 通过链接文本的一部分来定位链接,可能不精确,慎用。
    • 示例: partialLinkText=点击
  7. Tag Name (tag=)

    • 语法: tag=tagName
    • 描述: 通过标签名定位,通常用于定位多个相同类型的元素(如 tr, td)。
    • 示例: tag=table
  8. Class Name (className=)

    • 语法: className=className
    • 描述: 通过元素的 class 属性定位,同样,class 可能不唯一。
    • 示例: className=active

最佳实践与技巧

  1. 优先使用智能等待: 尽量使用 waitFor* 系列命令(如 waitForElementVisible)而不是 pause,让测试更稳定。
  2. 选择稳定的定位器: 优先使用 id,其次是 namecss,谨慎使用 xpath
  3. 合理使用 Assert 和 Verify: 对于关键路径使用 assert,对于非关键信息使用 verify
  4. 使用存储变量: 将动态数据(如生成的订单号)存储到变量中,用于后续的断言或传递给其他测试。
  5. 利用“记录”功能: Selenium IDE 的最大优势是录制,先录制基本流程,再通过编辑命令来增强和优化脚本。
  6. 格式化代码: 在 IDE 中使用 Ctrl + B (Windows) 或 Cmd + B (Mac) 格式化测试用例,使其更易读。

掌握这些命令和最佳实践,你就可以使用 Selenium IDE 高效地创建和维护各种 Web 应用的自动化测试脚本了。

分享:
扫描分享到社交APP
上一篇
下一篇