Selenium RC测试在verifyTrue失败时通过(selenium.isTextPresent(“string”))

时间:2011-01-04 23:30:49

标签: selenium-rc

我有一套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版本没有捕获错误?还有其他人有这个问题吗?

2 个答案:

答案 0 :(得分:5)

发生这种情况的原因是在调用verifyTrue()后测试继续运行。 Selenium中的验证捕获了验证失败所引发的异常,而不是抛出异常并导致测试失败的断言。因为验证会捕获异常而不是抛出它们,所以测试通过了。

在测试结束时,需要调用方法checkForVerificationErrors()以查看是否有任何验证失败。如果未调用该方法,则将忽略任何验证错误,并且测试仍将通过(没有任何其他问题)。

关于Selenium Google Group关于错误本身的讨论是here。关于各种验证与断言的讨论是here.

答案 1 :(得分:3)

我遇到了类似的问题......我的解决方法是使用assertTrue()而不是verifyTrue()。我希望它适合你。