Selenium Потеря обработки интернет-исключений с использованием Python и Chromedriver - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу, чтобы мой код мог обрабатывать обстоятельства, когда интернет не работает в течение определенного периода.В настоящее время я делаю это, используя предложение try / исключением с TimeoutException, но это не работает, так как Chrome не делает тайм-аут, когда нет Интернета, он просто возвращает эту страницу:

Нет Интернета

Попробуйте:

  • Проверка сетевых кабелей, модема и маршрутизатора

  • Повторное подключение к Wi-Fi

ERR_INTERNET_DISCONNECTED

Поскольку тайм-аут не установлен, мой код просто продолжает поиск элементов, а потеря интернета не обнаруживается.

Есть ли в любом случае повышениеисключение, когда в Chrome нет интернета?


код:

driver = webdriver.Chrome(executable_path=mypath)
driver.implicitly_wait(10)    
driver.set_page_load_timeout(10)

try:  
    driver.get(url)
    elem = driver.find_element_by_xpath(xpath).get_attribute("content")

except TimeoutException:
    print('TimeoutException')

1 Ответ

0 голосов
/ 03 декабря 2018

возможно, вы можете просто определить, существует ли элемент No Internet

def has_connection(driver):
    try:
        driver.find_element_by_xpath('//span[@jsselect="heading" and @jsvalues=".innerHTML:msg"]')
        return False
    except: return True

driver = webdriver.Chrome()
driver.get("https://www.google.com")

if not has_connection(driver):
    print('No Internet connection, aborted!')
    driver.quit()
    exit()

# connection is good continue
elem = driver.find_element_by_xpath(xpath).get_attribute("content")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...