我有一套Selenium测试,我在Selenium IDE中创建并移植到Java。在几个测试中,我使用Java等效的verifyTextPresent
命令来确认页面上的一些文本(verifyTrue(selenium.isTextPresent())
)。
从IDE运行测试时,我在页面上的文本中发现拼写错误,但是在通过Selenium RC / TestNG运行测试时未捕获到错误。这是我的代码示例和导致问题的文本(拼写错误以粗体显示):
文字:
请更正以下错误。
您需要添加 a 至少一个限制。
IDE:
verifyTextPresent | Please correct the errors indicated below.
verifyTextPresent | You need to add at least one restriction.
Java:
verifyTrue(selenium.isTextPresent("Please correct the errors indicated below."));
verifyTrue(selenium.isTextPresent("You need to add at least one restriction."));
由于测试的两个版本都有正确的文本,为什么Selenium RC版本没有捕获错误?还有其他人有这个问题吗?
答案 0 :(得分:5)
发生这种情况的原因是在调用verifyTrue()
后测试继续运行。 Selenium中的验证捕获了验证失败所引发的异常,而不是抛出异常并导致测试失败的断言。因为验证会捕获异常而不是抛出它们,所以测试通过了。
在测试结束时,需要调用方法checkForVerificationErrors()
以查看是否有任何验证失败。如果未调用该方法,则将忽略任何验证错误,并且测试仍将通过(没有任何其他问题)。
答案 1 :(得分:3)
我遇到了类似的问题......我的解决方法是使用assertTrue()而不是verifyTrue()。我希望它适合你。