尝试切换到用<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>
标签中。
感谢您的帮助!
答案 0 :(得分:0)
我设法通过@JeffC的建议使用id
或name
来完成这项工作。我使用了ID,而我在代码中所做的唯一更改如下:
代替:
driver.switchTo().frame(iFrame_id)
...我曾经用过:
driver.switchTo().frame(findElement(By.id(iFrame_id)))
感谢所有提供帮助的人!