如何修复 iframe 不适用于 Microsoft Edge?

How to fix iframes not working with Microsoft Edge?

更改 iframe 适用于 Firefox 网络驱动程序和 Chrome 网络驱动程序,但不适用于 Microsoft Edge 驱动程序。所有其他测试在 Edge 中运行良好,但没有更改 iframe。我更新了 Edge 驱动程序和 Windows 10,因为这是一个已知问题,但这仍然没有解决我的问题。还有其他方法可以解决这个问题吗?

driver.switchTo().defaultContent(); 
driver.switchTo().frame("settingiframe");
driver.findElement(By.id("LibraryConfigurations")).click();

输出消息将是:未找到此类元素

您需要实现 WebDriverWait 以等待帧可用,然后如下切换:-

WebDriverWait wait = new WebDriverWait(driver,20);

driver.switchTo().defaultContent();
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("settingiframe")); 

//after successfully switching to frame you need to wait until element to be clickable
WebElement el = wait.until(ExpectedConditions.elementToBeClickable(By.id("LibraryConfigurations")));
el.click();

注意 :- 对于给定的 frame ,上面的代码将 wait 最多 20 秒 。如果 frame 在给定的时间内可用,它将切换到给定的 frame。否则,它会抛出 TimeoutException.

希望对您有所帮助...:)