В firefox браузер pageLoadTimeout не работает, в то время как тот же код работает для браузера хром.
public static WebDriver startApplication(WebDriver driver, String browserName, String appURL) {
switch (browserName.toLowerCase()) {
case "chrome":
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
break;
case "firefox":
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver();
break;
case "ie":
WebDriverManager.iedriver().setup();
driver= new InternetExplorerDriver();
break;
case "edge":
WebDriverManager.edgedriver().setup();
driver= new EdgeDriver();
break;
case "opera":
WebDriverManager.operadriver().setup();
driver = new OperaDriver();
break;
default:
System.out.print("Browser not supported");
}
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get(appURL);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return driver;
}
После того, как я нажму кнопку отправки, серверная часть может занять больше времени (около 40 сек c ) производить вывод. Мне нужно подождать, пока я не получу ответ от вызова API после нажатия кнопки «Отправить», то есть для полной загрузки веб-страницы.
Я использую объектную модель страницы. После нажатия кнопки я использую следующий код для извлечения вывода:
myTestPage.getOutput();
Этот код отлично работает для браузера Chromium , тогда как в firefox он не ждет 60 секунд c pageLoadTimeout. Он только ждет около 5se c.
Selenium- java версия: 3.141.59
версия geckodriver: 0.26.0
Обновление: после нажатия кнопки «Отправить» моя страница не переходит на другую страницу. Вывод появляется на той же странице.
Эта проблема не похожа на этот вопрос . Вопрос связан с the driver continues to wait till the complete page is loaded
, но у меня как раз наоборот the driver doesn't wait till the complete page is loaded
. Моя проблема возникла только в браузере firefox.