Java 如何接触2<;iframe>;使用SeleniumWebDriver?寻找优雅的代码

Java 如何接触2<;iframe>;使用SeleniumWebDriver?寻找优雅的代码,java,selenium,selenium-webdriver,selenium-chromedriver,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,我有一个带有标签的网页,这是简化的摘录: <body> ... <iframe id="outFrame"> <iframe id ="innerFrame"> <div id="myDiv">Some text</div> </iframe> </iframe> ... </body> 这看起来不是一段优雅的代码。有没有什么建议可以让元素更体面?让我们想象一下,如果


我有一个带有标签的网页,这是简化的摘录:

<body>
...
<iframe id="outFrame">
    <iframe id ="innerFrame">
        <div id="myDiv">Some text</div>
    </iframe>
</iframe>
...
</body>

这看起来不是一段优雅的代码。有没有什么建议可以让元素更体面?让我们想象一下,如果我得不到正确的id,我的代码会有多糟糕

诱导
WebDriverWait
()和
框架可用并切换到it
()


诱导
WebDriverWait
()和
框架可用并切换到it
()


我是否必须重置
driver.switchTo().defaultContent()要恢复到驱动程序的原始状态?我是否必须重置
driver.switchTo().defaultContent()返回到驱动程序的原始状态?
WebElement frame = new WebDriverWait(driver, 30)
        .until(ExpectedConditions.presenceOfElementLocated(By.id("outFrame")));
WebElement hexagon = new WebDriverWait(driver.switchTo().frame(frame).switchTo().frame("innerFrame"), 10)
        .until(ExpectedConditions.presenceOfElementLocated(By.id("myDiv")));
new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("outFrame")));
new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("innerFrame")));
new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("myDiv")));