如何修复未知错误:未处理的检查器错误:“找不到具有指定ID的上下文”

时间:2018-05-19 22:20:33

标签: java selenium selenium-webdriver webdriver selenium-chromedriver

以下代码偶尔抛出org.openqa.selenium.WebDriverException

WebElement element = driver.findElement(by);
element.click();
(new WebDriverWait(driver, 4, 100)).until(ExpectedConditions.stalenessOf(element));

页面如下所示(by <a></a>

的选择器
<iframe name="name">
  <html id="frame">
    <head>
      ...
    </head>
    <body class="frameA">
      <table class="table">
        <tbody>
          <tr>
            <td id="83">
              <a></a>
            </td>
          </tr>
        </tbody>
      </table>
    </body>
  </html>
</iframe>

消息为unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot find context with specified id"}elementiframe的一部分,点击可能会导致iframe的内容重新加载。等待时会抛出异常。这个例外意味着什么,我该如何解决?

1 个答案:

答案 0 :(得分:1)

此错误消息......

unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot find context with specified id"}

...意味着 WebDriver 实例无法找到所需的元素。

正如您在问题中提到的那样,该元素是<iframe>的一部分,调用click()会导致iframe的内容重新加载,在这种情况下,您需要遍历{{1再次使用 WebDriverWait 再次切换回所需的defaultContent,然后为iframe上一个元素或下一个 WebDriverWait >所需元素如下:

stalenessOf()