如何修复未知错误:未处理的检查器错误:"Cannot find context with specified id"



以下代码偶尔会抛出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的内容。等待时引发异常。此异常是什么意思,我该如何解决它?

此错误消息...

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

。意味着Web 驱动程序实例无法找到所需的元素。

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

WebElement element = driver.findElement(by);
element.click();
driver.switchTo().defaultContent(); // or driver.switchTo().parentFrame();
new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.name("xyz")));
// wait for stalenessOf previous element (visibility of next desired element preferred)
new WebDriverWait(driver, 4, 100).until(ExpectedConditions.stalenessOf(element));
// or wait for visibility of next desired element (preferred approach)
new WebDriverWait(driver, 4, 100).until(ExpectedConditions.visibilityOfElementLocated(next_desired_element));

相关内容

  • 没有找到相关文章

最新更新