系列文章导航

  1. Selenium IDE 使用指南一(爬虫脚本录制器)
  2. Selenium IDE 使用指南二(命令行运行器)
  3. Selenium IDE 使用指南三(控制流)
  4. Selenium IDE 使用指南四(代码导出)
  5. Selenium IDE 使用指南五(常见问题)
  6. Selenium IDE 使用指南六(指令列表)
  7. Selenium IDE 使用指南七(参数定义)

如何记录悬停(Hover)操作?

鼠标悬停(Hover)操作很难在录制过程中被自动捕获。若需在测试中添加鼠标悬停操作,需要进行一些手动干预。您可以通过以下两种方式实现:

选项 1:在录制时添加

  1. 录制时,右键单击需要悬停的元素。
  2. 在出现的菜单中,单击 Selenium IDE,然后选择 Mouse Over
  3. 确认 Mouse Over 测试步骤在测试中的位置正确(如有需要,可将其拖放至其他位置)。

选项 2:在测试编辑器中手动添加

  1. 在 IDE 中右键单击测试步骤。
  2. 选择 Insert new command(插入新命令)。
  3. Command 输入字段中输入 mouse over
  4. Target 输入字段中输入要悬停元素的定位器(或单击 Select target in page 并选择页面上要悬停的元素)。

为什么在日期输入字段中键入的数字不能正确显示?

此问题通常出现在通过 Selenium IDE 的命令行运行器(Command Line Runner)运行测试时。

要解决此问题,您需要启用 W3C 模式。您可以在启动运行程序时通过传递参数 -c "chromeOptions.w3c=true" 来实现。

注意:启用 W3C 模式可能会影响 Selenium Actions 的性能。如果您的测试未涉及相关操作,建议仅在遇到日期输入字段问题时使用此模式。

如何让 IDE 等待特定条件成立才能继续进行?

在某些情况下,IDE 中的内置等待策略可能不够用。此时,可以使用可用的显式等待命令之一:

  • wait for element editable
  • wait for element present
  • wait for element visible
  • wait for element not editable
  • wait for element not present
  • wait for element not visible

如何在文本验证中使用正则表达式?

这是计划在未来添加的功能(详情请参阅 GitHub Issue #141)。

目前的解决方法是:将 XPath 定位器与 starts-withcontains 关键字结合使用。例如:

command: assertElementPresent
target:  //a@[starts-with(.,'you are the') and contains(.,'User to log in today')]

如何滚动页面?

Selenium IDE 中没有专门用于滚动的命令,因为 Selenium 核心中也未实现此类命令。相反,您可以使用 executeScript 命令执行 JavaScript 中的 scrollTo 方法,通过指定 xy 坐标滚动到所需位置。

command: executeScript
target:  window.scrollTo(0, 1000)

保存文件相关问题

为什么保存 Selenium IDE 项目的位置未被记住?

为什么每次保存项目时都需要逐步执行“另存为”流程?

为什么需要覆盖以前保存的文件?

所有这些问题都源于同一个限制:浏览器扩展版的 Selenium IDE 无法直接访问文件系统

目前提供“保存”功能的唯一方法是通过浏览器下载文件。当 IDE 完全迁移至本机应用程序(Native Application)时,此问题将得到解决。这将使 IDE 拥有首要的文件系统访问权限,从而提供更完善的“保存”体验。

如果要保持关注此功能的更新,可以参考 GitHub Issue #363

如何在严格的代理/防火墙后面安装 IDE?

在某些企业环境中,您可能没有完全的公共 Internet 访问权限(例如位于公司代理或防火墙后面)。在这些环境中,您需要获取内置的 Selenium IDE ZIP 文件副本,以便离线记录自动测试脚本。

可以在 GitHub 的 Releases 部分找到相关文件:

https://github.com/SeleniumHQ/selenium-ide/releases

注意:并非所有版本都包含 selenium-ide.zip,因为其中一些仅仅是“源代码”版本。请查找包含此 ZIP 文件的最新版本,这通常意味着它是提交给 Chrome 和 Firefox 商店的最新构建版。

正式签署的版本

从项目发行页面下载的 ZIP 文件通常是未签名的。或者,您可以从以下位置获取经过正式签名的安装程序,这些安装程序在“安全环境”中兼容性更好:

  • Firefox 附加组件

    • 下载地址:Firefox Add-ons
    • 所需的 .xpi 安装程序下载说明:How to save Firefox addons for offline installation
    • 注意:如果您已经安装了插件(例如在便携式计算机上尝试获取安装程序副本),在访问扩展管理页面时可能只会看到“删除”按钮。因此,建议先将其删除,让安装程序移至另一台未连接的计算机,然后根据需要在主设备的浏览器中重新安装。
  • Chrome 商店

附加了插件后,为什么没有保存对话框出现?

由于已知的 Chrome 错误 (Issue 922373),如果您不答复 Selenium IDE 发出的消息,则不会进行进一步处理。

为了解决此问题,请确保侦听 project 实体的 emit 操作,并使用 undefined 进行回复:

chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
  if (message.action === "emit" && message.entity === "project") {
    sendResponse(undefined);
  }
});

说明:本文部分内容基于 Selenium IDE 特定版本编写(涉及浏览器扩展与本机应用的过渡期)。随着 Selenium IDE 版本迭代(如 v4.x 及以上),部分功能(如文件保存机制、命令行参数)可能有所变化,请以官方最新文档为准。