Selenium 简明教程

Selenium IDE - Pattern Matching

Selenium IDE 可用于对测试进行模式匹配,特别是对于需要验证场景的测试。与定位器一样,模式是 Selenium 经常使用的一种参数类型。它允许用户借助特殊字符描述模式。很多时候,我们要验证的文本是动态的,在这种情况下,模式匹配非常有用。

模式匹配通常与所有验证点命令一起使用,如 verify text、verify not text、verify title、verify value、verify、assert text、assert alert、assert not text、assert prompt、assert selected value、assert title、assert not selected value、assert selected label 等。

Different Ways of Pattern Matching

  1. Globbing

  2. Regular Expressions

  3. Exact Matching

Globbing

Globbing 用于将字符串与 glob(即通配符表达式)相匹配。在 Linux 或 Windows 中搜索特定文件类型(如 .doc、.jpg 等)时,通常用于文件匹配模式。

在 Selenium 中有多种使用 Globbing 的方法,例如 * 用于匹配任何数量或顺序的字符,? 用于匹配一个独特的字符,[] 用于匹配括号内提供的任何一个字符。它是一个字符类。例如,[0-9] 将匹配任何数字。使用 Globbing 进行模式匹配默认情况下在 Selenium 中可用,并且可以选择在 Selenium IDE 中的测试步骤中提及关键字 glob。

让我们以如下页面的示例为例,我们将使用 Globbing 模式匹配来验证文本警报和标题 Selenium - 自动化实践。

selenium ide pattern matching 1

要遵循的步骤如下所示 -

Step 1 − 单击浏览器上在安装后显示的 Selenium IDE 扩展。

Step 2 − Selenium IDE 应该与它一起启动,应该显示一个显示该工具版本的欢迎消息。在下图中,安装的版本为 3.17.2。

除此之外,它还为我们提供了选择我们想使用该工具做什么的选项,例如在新项目中记录新测试、打开现有项目、创建新项目和关闭 Selenium IDE。

Step 3 − 单击新建项目链接,然后输入一个项目名称,比如 Please provide a name for your new project 下的 Test7。最后,我们将单击确定按钮。

Step 4 − 我们现在在 Selenium IDE 中准备好了工作区。

Step 5 − 在命令字段中输入 open,在目标字段中输入 https://www.tutorialspoint.com/selenium/ 以启动应用程序。

Step 6 - 在“命令”字段中输入断言文本,在“目标”字段中输入 xpath=/html/body/main/div/div/div[2]/h1,在“值”字段中输入 glob: Alert*。请注意,xpath=/html/body/main/div/div/div[2]/h1 是文本,glob: Alert* 是要匹配的模式的值。

Step 7 - 在“命令”字段中输入断言文本,在“目标”字段中输入 xpath=/html/body/div/header/div[2]/h1,在“值”字段中输入 glob: Selenium - Automation*。请注意,xpath=/html/body/div/header/div[2]/h1 是标题,glob: Selenium - Automation* 是要匹配的模式的值。

Step 8 − 在命令字段中输入 close 以关闭浏览器窗口。

selenium ide pattern matching 2

Step 9 - 在左窗格中单击出现的三个点,然后选择“重命名”选项。

Step 10 - 在“重命名测试用例”字段下输入名称(例如 Test14),然后单击“重命名”。输入的名称将显示在 Selenium IDE 的左侧。

Step 11 - 从顶部单击“全部运行测试”,然后等到测试执行完成。在我们的示例中,我们会看到“运行:1”、“失败:0”,以及一个绿色条表示测试成功运行且无任何失败。而且,消息“Test14 完成成功”显示在“日志”下方。

在上述示例中,我们通过 globbing 技术验证了文本。

Exact Matching

精确匹配用于按字符串原样匹配。例如,如果需要与字符串值精确匹配,可以使用精确模式。在精确匹配中,运算符 * 作为普通字符工作,而不是作为模式匹配通配符。让我们使用上面讨论过的相同示例并使用精确模式技术。

要遵循的步骤如下所示 -

Step 1 - 按照前一个示例中的步骤 1 到 5 操作。

Step 2 - 在“命令”字段中输入断言文本,在“目标”字段中输入 xpath=/html/body/main/div/div/div[2]/h1,在“值”字段中输入 exact: Alerts。请注意,xpath=/html/body/main/div/div/div[2]/h1 是文本,exact: Alerts 是要精确匹配的值。

Step 3 - 在“命令”字段中输入断言文本,在“目标”字段中输入 xpath=/html/body/div/header/div[2]/h1,在“值”字段中输入 exact: Selenium - Automation Practice。请注意,xpath=/html/body/div/header/div[2]/h1 是标题,exact: Selenium - Automation Practice 是要精确匹配的值。

Step 4 - 按照前一个示例中的步骤 8 到 11 操作。

Regular Expressions

正则表达式在可用的模式匹配技术中最为有用。Selenium 支持 Javascript 支持的整套正则表达式模式。因此,用户不再受 *、?和 [] globbing 模式的限制。

要使用 RegEx 模式,我们需要用“regexp:”或“regexpi:”作前缀。“regexpi”前缀不区分大小写。glob: 和 exact: 模式是正则表达式模式的子集。使用 glob: 或 exact: 可以完成的所有操作也可以通过 RegExp 的帮助来完成。

可在以下链接找到有关正则表达式的更多信息 -

这结束了我们对 Selenium IDE - 模式匹配教程的全面介绍。我们首先描述了模式匹配的不同方法,例如 globbing、正则表达式和精确匹配,以及如何使用 Selenium。

这让你掌握了 Selenium IDE 中模式匹配的深入知识。明智的做法是继续实践你学到的东西并探索与 Selenium 相关的其他内容,以加深你的理解并拓宽你的视野。