在网页上搜索iframe

时间:2014-04-08 06:09:01

标签: java selenium selenium-webdriver webdriver

如何在网页上找到iframe?

Html标签在下面给出

<div class="bluebox">
   <div class="title"><span>Preview</span></div>
   <div class="content">
      <iframe frameborder="0" src="about:blank" style="width:100%;height:488px;border:0 none;" id="previewFrame"></iframe>
   </div>
   <div class="box_shadow">
      <div class="left"></div>
      <div class="right"></div>
   </div>
</div>

在我的代码中,我写的是:

driver.switchTo().frame(driver.findElement(By.id("previewFrame")));
System.out.println("Successfully switched to frame.");

boolean checkStatus = driver.findElement(By.id("previewFrame")).isDisplayed();

错误:无法找到iframe

3 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
boolean isExists = true;
try {
       driver.findElement(By.id("previewFrame");
       // No exception means frame is present
    } catch (NoSuchElementException e) {
       // Exception, no such frame is present
       isExists = false;
    }

答案 1 :(得分:0)

切换到iframe后,Selenium的参考点就是iframe中包含的所有内容。

要检查Selenium是否具有正确的引用,请测试iframe内的元素。

作为旁注,您可以简化您的开关:

driver.switchTo().frame("previewFrame");

答案 2 :(得分:0)

尝试切换到默认页面,然后执行切换到所需的帧。

driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.id("previewFrame")));

如果这有助于您,请告诉我。感谢。