0

目前我在 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)
4

1 回答 1

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级别。(根据 ChromeDriver v2.38 发行说明
  • 通过IDE清理项目工作区并仅使用所需的依赖项重建项目。
  • 使用CCleaner工具在执行测试套件之前和之后清除所有操作系统杂务。
  • 如果您的基本Web Client版本太旧,请通过Revo Uninstaller卸载它并安装最新的 GA 和已发布版本的Web Client
  • 重新启动系统
  • 执行你的@Test.
于 2018-05-08T07:18:55.697 回答