在 Selenium 中验证元素是否存在和 waitFor 命令
验证元素的存在
我们可以使用以下两个命令来验证元素的存在:
- verifyElementPresent – 如果在页面中找到指定的元素,则返回TRUE;否则返回FALSE。
- verifyElementNotPresent – 如果在页面中未找到指定的元素,则返回TRUE;如果存在则返回FALSE。
下面的测试脚本验证了在Mercury Tours主页中存在UserName文本框,而First Name文本框不存在。First Name文本框实际上是Mercury Tours注册页面中的一个元素,而不是主页中的元素。
在Selenium命令中验证特定文本的存在
- verifyTextPresent – 如果在页面中找到指定的文本字符串,则返回TRUE;否则返回FALSE。
- verifyTextNotPresent – 如果在页面中未找到指定的文本字符串,则返回TRUE;如果找到则返回FALSE。
请记住,这些命令是区分大小写的。
在上述场景中,“Atlanta to Las Vegas”与“atlanta to Las Vegas”被区别对待,因为第一个“Atlanta”中的“A”是大写,而另一个是小写。当对它们中的每一个使用verifyTextPresent命令时,一个通过了,另一个失败了。
验证元素的特定位置
Selenium IDE通过测量(以像素为单位)元素距离浏览器窗口左边缘或上边缘的距离来指示元素的位置。
- verifyElementPositionLeft – 验证指定的像素数是否与元素距离页面左边缘的距离匹配。如果指定的值与距离左边缘的距离不匹配,则返回FALSE。
- verifyElementPositionTop – 验证指定的像素数是否与元素距离页面上边缘的距离匹配。如果指定的值与距离上边缘的距离不匹配,则返回FALSE。
Selenium中的等待命令
以下是Selenium中等待命令的类型:
andWait 命令
这些命令将在加载新页面后才执行下一个命令。
示例包括:
- clickAndWait
- typeAndWait
- selectAndWait
waitFor 命令
这些命令会等待指定的条件变为真,然后才继续执行下一个命令(无论是否加载新页面)。这些命令更适用于基于AJAX的动态网站,这些网站在不重新加载整个页面的情况下更改值和元素。示例包括:
- waitForTitle
- waitForTextPresent
- waitForAlert
考虑下面的Facebook场景。
我们可以结合使用“click”和“waitForTextPresent”来验证文本“Providing your birthday.”的存在。
我们不能使用clickAndWait,因为点击“我为什么需要提供我的生日?”链接后没有加载页面。如果使用,测试将失败。
摘要
- 验证页面元素最常用的三个命令是:
- verifyElementPresent/ verifyElementNotPresent
- verifyTextPresent/ verifyTextNotPresent
- verifyElementPositionLeft/ verifyElementPositionTop
- 等待命令分为两类:
- andWait 命令 – 当预期加载页面时使用
- waitFor 命令 – 当预期不加载新页面时使用