如何获取页面中的所有iframe

时间:2014-07-23 16:21:33

标签: html iframe selenium

我有一个非常复杂的html页面。

<html>
 <head></head>
  <body>
<iframe> A </iframe>
  <table>
   <div>
    <span>
      <div> <iframe> B </iframe> </div>
        <style>
          <div>
            <div>

 

当我尝试在iframe A中找到一个元素时,它会转到另一个iframe。我尝试使用driver.switchTo()。frame(0)切换到iframe但没有用。

当我尝试使用findElements方法获取所有iframe时,它只返回一个iframe(B)。

1 个答案:

答案 0 :(得分:2)

答案取决于你想对iframe列表做些什么。

如果您想要所有列表,可以尝试使用递归函数。

public void getAlliFrames(){
   List<WebElement> iframes = driver.findElements(By.tagName("iframe"));

   if(iframe.count() > 0){
      driver.switchTo().frame(iframe.get(0));

      getAlliFrames();
   }else{
      System.out.println("No more iframes");
   }
}

PS:这是一个未经测试的代码,仅供您参考。