我正在使用selenium运行一些非常简单的测试,一些测试在我的慢速构建机器上随机失败并发出此错误:
com.thoughtworks.selenium.SeleniumException:3000ms后超时
反对此代码:
seleniumStart();
selenium.open("*****");
selenium.waitForPageToLoad("3000");
selenium.type("j_username", LoginTest.DEFAULT_ADMIN_USERNAME );
selenium.type("j_password", LoginTest.DEFAULT_ADMIN_PASSWORD );
selenium.click("loginbutton");
selenium.waitForPageToLoad("3000");
selenium.click("nav_form:managepatients");
它使用spring security,jsf作为前端。有谁知道为什么这是hapenning?我已经坚持了2天。
提前感谢。
答案 0 :(得分:2)
3000毫秒只有3秒,这有时可能不足以加载页面,所以也许你只需要提高超时时间?等待300万毫秒的waitForPageToLoad似乎更合适。
答案 1 :(得分:1)
对于我来说,比selenium.waitForPageToLoad("xxxxxx");
更健壮的方式对我有用 -
while (!(selenium.isElementPresent("any element on page")==true)) {
selenium.setSpeed("10");
Thread.sleep(10);
}
这使您可以等到某个预定元素加载,然后执行后续操作。测量响应时间也很好......
答案 2 :(得分:0)
可能页面在那段时间没有加载,你是否试过提高超时说30000如果不起作用你最好的选择是在selenium运行时观看浏览器
答案 3 :(得分:0)
您可以增加等待页面加载时间。
要么
使用:selenium.setSpeed("2000");
- 将等待2秒它在setSpeed延迟之后运行每个命令,以setSpeed中提到的毫秒数为单位。因此,在每次操作之后,这种情况下的间隙为2秒,这将有助于操作完成,而不是切换到下一个操作。