在 Selenium 中验证元素是否存在和 waitFor 命令

验证元素的存在

我们可以使用以下两个命令来验证元素的存在:

  • verifyElementPresent – 如果在页面中找到指定的元素,则返回TRUE;否则返回FALSE。
  • verifyElementNotPresent – 如果在页面中未找到指定的元素,则返回TRUE;如果存在则返回FALSE。

下面的测试脚本验证了在Mercury Tours主页中存在UserName文本框,而First Name文本框不存在。First Name文本框实际上是Mercury Tours注册页面中的一个元素,而不是主页中的元素。

Verify Presence of an Element

在Selenium命令中验证特定文本的存在

  • verifyTextPresent – 如果在页面中找到指定的文本字符串,则返回TRUE;否则返回FALSE。
  • verifyTextNotPresent – 如果在页面中未找到指定的文本字符串,则返回TRUE;如果找到则返回FALSE。

请记住,这些命令是区分大小写的。

Verify Presence of a Certain Text in Command in Selenium

在上述场景中,“Atlanta to Las Vegas”与“atlanta to Las Vegas”被区别对待,因为第一个“Atlanta”中的“A”是大写,而另一个是小写。当对它们中的每一个使用verifyTextPresent命令时,一个通过了,另一个失败了。

验证元素的特定位置

Selenium IDE通过测量(以像素为单位)元素距离浏览器窗口左边缘或上边缘的距离来指示元素的位置。

  • verifyElementPositionLeft – 验证指定的像素数是否与元素距离页面左边缘的距离匹配。如果指定的值与距离左边缘的距离不匹配,则返回FALSE。
  • verifyElementPositionTop – 验证指定的像素数是否与元素距离页面上边缘的距离匹配。如果指定的值与距离上边缘的距离不匹配,则返回FALSE。

Verify Specific Position of an Element

Selenium中的等待命令

以下是Selenium中等待命令的类型:

andWait 命令

这些命令将在加载新页面后才执行下一个命令。

示例包括:

  • clickAndWait
  • typeAndWait
  • selectAndWait

AndWait Commands

waitFor 命令

这些命令会等待指定的条件变为真,然后才继续执行下一个命令(无论是否加载新页面)。这些命令更适用于基于AJAX的动态网站,这些网站在不重新加载整个页面的情况下更改值和元素。示例包括:

  • waitForTitle
  • waitForTextPresent
  • waitForAlert

考虑下面的Facebook场景。

WaitFor Commands

我们可以结合使用“click”和“waitForTextPresent”来验证文本“Providing your birthday.”的存在。

WaitFor Commands

我们不能使用clickAndWait,因为点击“我为什么需要提供我的生日?”链接后没有加载页面。如果使用,测试将失败。

WaitFor Commands

摘要

  • 验证页面元素最常用的三个命令是:
  • verifyElementPresent/ verifyElementNotPresent
  • verifyTextPresent/ verifyTextNotPresent
  • verifyElementPositionLeft/ verifyElementPositionTop
  • 等待命令分为两类:
  • andWait 命令 – 当预期加载页面时使用
  • waitFor 命令 – 当预期不加载新页面时使用