Вот что я делаю:
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(), поэтому:
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() иногда не запускается?