У меня возникают проблемы с автоматизацией тестов на внутреннем веб-сайте. В некоторых случаях всплывающее окно заморозит тест, пока я не закрою всплывающее окно вручную. После всплывания всплывающее окно не запускается, даже System.out.println.Popup freezes Selenium Webdriver до тех пор, пока всплывающее окно не будет закрыто вручную
driver.findElement(By.id("top_toolbarSALTkA7_Aras_Tbi_promote")).click();
System.out.println("test");
Я попробовал несколько способов обработки всплывающих окон, но нет кода вообще не запускается после щелчка(), и, кажется, это никогда не таймаут.
Пытались:
1.
((JavascriptExecutor) driver).executeScript("return document.getElementById('top_toolbarSALTkA7_Aras_Tbi_promote', 'onClick')");
2.
Set<String> windowHandles = driver.getWindowHandles();
for(String handle : windowHandles)
{
driver.switchTo().window(handle);
if (driver.getTitle().contains(title))
{
System.out.println("- (Page title is: " + driver.getTitle() + ")");
break;
}
}
3.
driver.switchTo().alert();
4.
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Если я закрою всплывающее окно, тест будет продолжен с System.out.println, а затем продолжен до финиша.
Я использую Selenium Webdriver 2.48.2 с FireFox 31.0, программирование - это Java. Любые идеи, что можно сделать? (Невозможно изменить сайт)
Какие крепления для webdriver вы используете? когда я использую webdriverJS, и я хочу добавить javascript в браузер, я использую 'executeAsycScript()' вместо 'executeScript()' - он принимает обратный вызов, который вы вызываете, чтобы явно указать webdriver - клиентская сторона JS завершена - теперь продолжайте прогоняя остальные тесты –
Извините, я забыл упомянуть! Я использую java – Louise
Пробовал использовать это вместо executeScript() теперь, без изменений: '((JavascriptExecutor) драйвер) .executeAsyncScript (" return document.getElementById ('top_toolbarSALTkA7_Aras_Tbi_promote', 'onClick') ");' – Louise