捕获 WebDriverException

catching a WebDriverException

(Python)我试图在使用 Selenium chrome 驱动程序时捕获异常,但是,到目前为止,我一直无法捕获异常并提示 "Failed at this click!" 打印陈述。关于如何解决这个问题的任何建议(最初的问题是 .click() 因为我在一致性方面遇到了麻烦,但我认为此时捕获异常就足够了)。

以下异常:

File "/Users/J*****i/anaconda/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)

WebDriverException: unknown error: Element is not clickable at point (145, 1818)
  (Session info: chrome=64.0.3282.186)
  (Driver info: chromedriver=2.31.488774 (7e15618d1bf16df8bf0ecf2914ed1964a387ba0b),platform=Mac OS X 10.10.5 x86_64)

代码如下:

    URL2 = URL_in_2
    driver = webdriver.Chrome('/Users/J******i/Desktop/chromedriver')
    driver.get(URL2)
    cookie_disclaimer = driver.find_element_by_xpath("//*[contains(text(), 'OK')]")
    cookie_disclaimer.click()
    try:
        element = WebDriverWait(driver,10).until(
                EC.presence_of_element_located((By.ID, "sub-navigation"))
        )
    except:
        "Failed at this click!"
    finally:
        print("[D2] successful first click: " + str(element) + " found")

要捕获 click() 的异常,请将其保存在 try catch 块中。修改您的代码如下:

    URL2 = URL_in_2
    driver = webdriver.Chrome('/Users/J******i/Desktop/chromedriver')
    driver.get(URL2)
    try:
        cookie_disclaimer = driver.find_element_by_xpath("//*[contains(text(), 'OK')]")
        cookie_disclaimer.click()
        element = WebDriverWait(driver,10).until(
        EC.presence_of_element_located((By.ID, "sub-navigation"))
    )
    except:
        "Failed at this click!"
    finally:
        print("[D2] successful first click: " + str(element) + " found")

不确定为什么在 click() 之后隐式等待元素存在,但在代码中,您在等待具有 id 'sub-navigation'

的元素存在时捕获任何异常