无法切换到<section>标记内的iFrame

时间:2019-07-09 19:20:47

标签: selenium iframe

尝试切换到用<section>标记包裹的iFrame时,出现了 NoSuchFrame 异常。有人可以帮我吗?

我正尝试切换到iFrame进行硒测试。我已经使用driver.switchTo()方法切换到iFrame。

<section> HTML:

<section id="modal-root">
 <div class="modal-wrapper">
   <div id="#####" class="modal-container modal-enter-done">
     <div class="modal ####" role="dialog">
    <button type="button" aria-label="Close Modal" class="button-icon 
        modal-close">
    <span class="icon icon-x">
    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
         role="presentation">
      <path d="M8.41421 7L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 
           13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L7 
           8.41421L1.70711 13.7071C1.31658 14.0976 0.683418 14.0976 0.292893
       13.7071C-0.0976311 13.3166 -0.0976311 12.6834 0.292893 
           12.2929L5.58579 7L0.292893 1.70711C-0.0976311 1.31658 
      -0.0976311 0.683418 0.292893 0.292893C0.683418 -0.0976311 1.31658 
          -0.0976311 1.70711 0.292893L7 5.58579L12.2929 0.292893C12.6834 
          -0.0976311 13.3166 -0.0976311 13.7071 0.292893C14.0976 0.683418 
           14.0976 1.31658 13.7071 1.70711L8.41421 7Z" transform="translate(5 
           5)" fill="black">
      </path>
    </svg>
      </span>
    </button>
    <div class="modal-body">
      <div class="#####">
    <iframe title="######" id="#####" name="#####"src="######">
    </iframe>
     </div>
   </div>
 </div>
</div>
<div class="modal-overlay">
</div>
</div>
</section>

我正在尝试切换到iFrame。我正在运行以下代码段:

WebDriver driver = new ChromeDriver();
driver.get(url);
driver.manage().window().maximize();
driver.switchTo().frame(iFrame_id);

我正在接受以下例外:

  

org.openqa.selenium.NoSuchFrameException:找不到框架元素   名称或ID iFrame_id

我不确定是否可以直接切换到iFrame,因为它包装在<section>标签中。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我设法通过@JeffC的建议使用idname来完成这项工作。我使用了ID,而我在代码中所做的唯一更改如下:

代替:

driver.switchTo().frame(iFrame_id) 

...我曾经用过:

 driver.switchTo().frame(findElement(By.id(iFrame_id)))

感谢所有提供帮助的人!