Как исправить исключение «Сообщение: время ожидания (информация о сеансе: headless chrome = 77.0.3865.50)», когда я использую селен? - PullRequest
1 голос
/ 03 октября 2019

Когда я использую селен для автоматизации, я иногда получаю исключение:

Message: timeout   (Session info: headless chrome=77.0.3865.90)

, и я не знаю, что произошло.

Я пытался Google, но не могне могу найти причину.

try:
    li.click()
    browser.find_element_by_xpath('//div[@class="user-info"]/div[@class="user-info-detail"]/a').get_attribute('href')
except Exception as e:
    print(e)

«Сообщение: тайм-аут (информация о сеансе: headless chrome = 77.0.3865.50)», иногда я получаю исключение, но в целом это не так.

1 Ответ

1 голос
/ 03 октября 2019

Это сообщение об ошибке ...

Message: timeout (Session info: headless chrome=77.0.3865.50)

... означает, что ChromeDriver экземпляр истекло время ожидания при попытке найти нужный элемент, отображаемый через безголовый хром = 77.0 .


Немного больше информации относительно:

  • Selenium версия клиента
  • ChromeDriver версия
  • Соответствующий HTML DOM

помог бы нам отладить проблему более эффективно.


Однако, возможно, элемент существует, но атрибут href не отображался в DOM Tree . Поскольку ваш сценарий использования заключается в получении атрибута href для WebElement, в идеале вам нужно вызвать WebDriverWait для visibility_of_element_located(). Таким образом, эффективный блок кода будет выглядеть следующим образом:

try:
    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='user-info']/div[@class='user-info-detail']/a"))).get_attribute("title"))
except Exception as e:
    print(e)

Индуцирование WebDriverWait вместе с ExpectedConditions не будет проходить через необработанное сообщение на консоли.

...