Selenium WebDriverWait не выдает исключение тайм-аута - PullRequest
0 голосов
/ 13 октября 2019

Я использую селен для утилизации паутины. Сеть похожа на карту Google, мне нужно указать начальное и конечное местоположение, а затем получить результаты. Веб-страница загружается медленно и иногда перестает отвечать. поэтому я пытаюсь использовать WebDriverWait, чтобы перехватить исключение тайм-аута и перезапустить веб-страницу.

Однако на самом деле, если веб-страница перестает отвечать, webDriverWait не выдает исключение тайм-аута, и код просто застревает навсегда. Например, в прошлый раз мой код застрял на invisibility_of_element_located и не отвечает, даже если время ожидания установлено на 10 с.

WebDriverWait(driver,10).until(EC.invisibility_of_element_located((By.XPATH, "//*[@ng-show='route.isCalculating']")))

1 Ответ

0 голосов
/ 13 октября 2019

Вы можете попробовать обернуть ожидание в блок try / Кроме того, чтобы увидеть, можете ли вы поймать TimeOutException:

from selenium.common.exceptions import TimeoutException

try:
    print("Attempting to locate element")
    WebDriverWait(driver,10).until(EC.invisibility_of_element_located((By.XPATH, "//*[@ng-show='route.isCalculating']")))
except TimeoutException:
    print("TimeoutException encountered")
print("Task complete")

. Исходя из того, что выводится на консоль, вы, вероятно, решите, стоит лиисключение применяется вообще.

Если TimeoutException не перехвачено, вы можете просто использовать except: и посмотреть, что-нибудь перехватывается вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...