После исключения времени получения, как я перезапущу веб-драйвер и продолжу выполнение скрипта?

#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();
            }
        }