Python, использующий Selenium для поиска ошибки 404 для условия If Else - PullRequest
0 голосов
/ 30 мая 2019

Условие состояния - Попробуйте, кроме, иначе -

Я использую Selenium / Python для автоматизации некоторых задач по загрузке и загрузке файлов.

Есть ли способ заставить Selenium / Python распознавать, если страница загружена как 404? т.е. моя попытка "Попробуй" ниже.

Моя цель - заставить скрипт закрыть вкладку, если он загружается как ошибка 404, и зацикливаться, пока не будет найден загружаемый файл. Файл в формате PDF.

Я пытался использовать XPath для поиска определенного текста, например:

'Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 404 Not Found.' - но я не уверен относительно правильного кодирования, необходимого. Я новичок в этом, так что спасибо за терпение.

Ниже находится нижняя часть скрипта, и он также находится в цикле - («иконка» - кнопка загрузки, которая отображается на странице для скачивания, но не на странице 404)

    try:
       Download = driver.find_element_by_id('icon')
       if Download == driver.find_element_by_id('icon'):
           raise Exception

    except Exception:
        pyautogui.time.sleep(2)
        pyautogui.hotkey('ctrl','s')
        pyautogui.time.sleep(2)
        pyautogui.hotkey('enter')
        pyautogui.time.sleep(2)
        pyautogui.hotkey('ctrl','w')
        pyautogui.click(771, 374, duration=0.55)
        pyautogui.click(867, 276, duration=0.55)


    else:
        pyautogui.time.sleep(2)
        pyautogui.hotkey('ctrl','w')
        pyautogui.time.sleep(2)
        pyautogui.doubleClick(79, 136, duration=0.55)
        pyautogui.time.sleep(15)
        pyautogui.click(642, 442, duration=0.55)
        pyautogui.time.sleep(2)
        pyautogui.hotkey('ctrl','s')
        pyautogui.time.sleep(2)
        pyautogui.hotkey('enter')
        pyautogui.time.sleep(2)
        pyautogui.hotkey('ctrl','w')
        pyautogui.click(771, 374, duration=0.55)
        pyautogui.click(867, 276, duration=0.55)

Приведенный выше код не закрывает веб-страницу 404, если она загружается. Скорее, сценарий сохраняет веб-страницу 404, а не пытается выполнить «остальную» часть сценария.

Спасибо за помощь! (Если я могу дать голосование, я буду.)

1 Ответ

0 голосов
/ 30 мая 2019

Webdriver не будет ловить http404, это не реализовано в API, и не будет, отметьте их средство отслеживания проблем .Вы можете использовать только Python для этого, возможно , это поможет .

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