美好的一天,
我是selenium的新手,我正在尝试编写一个简单的测试.我想测试我的AJAX功能,所以我认为waitForCondition()方法适合我.问题是,我每次都会收到错误,说’testLoop’没有定义.我的测试很简单:
@Test
public void firsttest()
{
selenium.open(BASE_URL);
assertTrue(selenium.isElementPresent("css=a#performAjax"));
selenium.click("link=Add some content!");
String script = "selenium.browserbot.getCurrentwindow().document.getElementByClassName('ajaxMessage').length > 0";
selenium.waitForCondition(script, "10000");
Assert.assertEquals(selenium.getText("css=div.ajaxMessage"), "You got me with AJAX!");
}
但每次我运行它,我都会收到错误:
com.thoughtworks.selenium.SeleniumException: ERROR: Command execution failure. Please search the forum at http://clearspace.openqa.org for error details from the log window. The error message is: testLoop is not defined
我搜索过论坛等等,但是到目前为止我没有找到任何帮助.任何提示都表示赞赏.
关于更好的编写硒测试方法的其他提示也是受欢迎的,但我的主要目标是绕过这个错误:)
如果有人想知道,是的,我已经验证在调用waitForCondition()期间抛出了错误.
解决方法:
一些更多的搜索做了伎俩!对于其他想知道的人……
在this post上发表评论的用户提到waitForCondition()扩展的当前实现与当前版本的selenium不同步.必须更新user-extensions.js文件,以使用’TestLoop’替换’testLoop’的所有实例.
如果你像我一样将selenium-rc作为外部jar导入到Eclipse中,这是解压缩jar,编辑js文件并将其重新压缩到jar中的问题.
更新:
在进一步研究之后,似乎waitForElementPresent()是执行此操作的首选方法,因为您只需指定一个定位器而不是评估JavaScript表达式.还有waitForTextPresent()和其他等价物.
这些AJAX方法不存在于selenium-rc中的.jar文件中.它们在Selenium-IDE中可用,如果将这些测试导出到Java,您将看到它只是创建一个默认超时为60秒并检查isElementPresent()的循环.
如果您更喜欢从Java驱动模式严格工作,您可以创建一些帮助程序来为您完成这项工作,因为解压缩jar,修改用户扩展以及重新压缩jar会变得相当繁琐和烦人.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。