#python #python-3.x #selenium #selenium-webdriver
#питон #python-3.x #селен #selenium-webdriver
Вопрос:
Я дал тайм-аут для driver.get() следующими способами
self.driver.set_page_load_timeout(30)
then Tried below code
try :
driver.get(url)
print("URL successfully Accessed")
except TimeoutException as e:
print("Page load Timeout Occured. Quiting !!!")
pass
Проблема в том, что здесь запущено 10 ссылок, если в одной ссылке возникает исключение TimeoutException, то следующая ссылка не открывается driver.get().
У меня есть ниже способ закрыть драйвер и перезапустить снова.
except TimeoutException as e:
print("Page load Timeout Occured. Quiting !!!")
driver.close()
driver.get("https://www.google.com/")
pass
но, к сожалению, результат тот же. Как я могу перезапустить свой драйвер и продолжить открывать скрипт?
Ответ №1:
Для перезапуска браузера попробуйте сделать то же самое, что и в предыдущем сценарии. Что-то вроде: драйвер = новый ChromeDriver (параметры);
Ответ №2:
Я пишу в основном на Java. Итак, фрагмент в Java ниже. Когда вы нажмете TimeoutException, вы закрываете драйвер. Поскольку открыт только один браузер, драйвер завершает работу (сеанс заканчивается). Поэтому вам необходимо создать новый экземпляр ChromerDriver. Вы можете сделать это, проверив исключение сеанса.
WebDriver driver = new ChromeDriver();
for (int i = 1; i < 10; i ) {
try {
System.out.println(("Getting Page " i));
driver.get("http://www.google.com");
driver.manage().window().maximize();
if(i==2) {
throw new org.openqa.selenium.TimeoutException();
}
}
catch (org.openqa.selenium.TimeoutException e) {
System.out.println(("Page load Timeout Occured. Quiting !!!"));
driver.close();
}
catch (org.openqa.selenium.NoSuchSessionException e) {
driver = new ChromeDriver();
}
}