首页 > 解决方案 > Python 使用 Selenium 为 If Else 条件定位 404 错误

问题描述

条件语句 - Try,Except,Else -

我正在使用 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而不是尝试脚本的“Else”部分。

谢谢您的帮助!(如果我能投赞成票,我会的。)

标签: pythonseleniumconditional-statementshttp-status-code-404

解决方案


Webdriver 不会捕获 http404,这没有在 API 中实现,也不会,检查他们的问题跟踪器。你可以只使用 python,也许这会有所帮助


推荐阅读