这就是我所做的:
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
// do something, then navigate to a different page
// (window focus is never changed in-between)
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
链接“mylink”确实存在,第一次调用 click() 总是有效的。但是第二次 click() 有时似乎有效,有时无效。
看起来 click() 事件根本没有触发,因为页面甚至没有开始加载。不幸的是,这种行为是不确定的。
这是我已经尝试过的:
设置更长的超时时间
=> 没有帮助加载一页后等待元素出现
=>也不起作用,因为页面甚至没有开始加载
现在我最终调用了 click() 两次,所以:
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
// do something, then navigate to a different page
// (window focus is never changed in-between)
selenium.click("link=mylink");
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
这会起作用,但这不是一个非常好的解决方案。我还在另一个论坛上看到有人建议写类似“clickAndWaitWithRetry”的东西:
try {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}
catch (SeleniumException e) {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}
但我认为这也不是一个合适的解决方案....任何想法/解释为什么有时不触发 click() 事件?