没有处理多个异常

时间:2018-05-07 18:12:50

标签: python selenium selenium-webdriver selenium-chromedriver staleelementreferenceexception

目前我在for循环中使用了多个异常。但是,它们仍然会抛出异常错误,我不确定为什么它们没有被处理。

这是我的代码:

for x in range (15):
    actions.click_and_hold(element1).move_to_element(element2).release().perform()
    try:
        WebDriverWait(driver, 5).until(
            EC.visibility_of_element_located((elementLocator))
            )
        return True
    except (StaleElementReferenceException, TimeoutException):
        break

以下是抛出的错误:

StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
  (Session info: headless chrome=67.0.3396.30)
  (Driver info: chromedriver=2.36.540469 (1881fd7f8641508feb5166b7cae561d87723cfa8),platform=Mac OS X 10.13.4 x86_64)

1 个答案:

答案 0 :(得分:0)

我没有在您的代码块中看到任何问题,但您的主要问题似乎是您正在使用的二进制文件之间的版本兼容性,如下所示:

  • 您正在使用 chromedriver = 2.36
  • chromedriver=2.36的发行说明明确提及以下内容:
  

支持 Chrome v63-65

  • 您正在使用 chrome = 67.0
  • ChromeDriver v2.38的发行说明明确提及以下内容:
  

支持 Chrome v65-67

因此 ChromeDriver 版本( v2.36 )与 Chrome浏览器版本( v67)之间存在明显的不匹配。 0

解决方案

  • ChromeDriver 升级到当前ChromeDriver v2.38级别。
  • Chrome 版本保留在 Chrome v67.x 级别。 (as per ChromeDriver v2.38 release notes
  • 通过 IDE 清理您的项目工作区仅使用所需的依赖项重建项目
  • 使用CCleaner工具清除执行测试套件之前和之后的所有操作系统杂务。
  • 如果您的基本 Web客户端版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和已发布的 Web客户端版本。
  • 进行系统重启
  • 执行@Test