如何将驱动程序控制从顶部窗口切换到iframe#mainFrame

how to switch driver control from the top window to iframe#mainFrame

本文关键字:窗口 iframe#mainFrame 顶部 程序控制      更新时间:2023-09-26

我使用firebug来检查xpath, firebug的一个块显示您在window或iframe中找到的元素,等等。我面临着类似的问题,它向我展示了2个选项1:顶窗2: iframe #主机现在的问题是,当我检查它在iframe#mainFrame中显示的元素时,我尝试将驱动程序控制从主窗口切换到iframe并使用webdriver检测元素,但它不适合我,我编写了以下一组代码:

driver.switchTo().frame("mainFrame");
driver.findElement(By.xpath("//div[@class='div_img']/img[@src='http://ser/themes/20/3/Flor/CF.jpg']")).click();

注意:当我检查iframe在html代码,它不包含另一个文档里面,它只包含id和其他样式和所有和src标签。
请建议如果有一些其他的方式,通过它我可以检测元素。

有多种方法可以切换到iframe,如使用框架id,名称,索引和通过webElement。

可能在您的情况下,可能没有iframe id或名称。最好的方法是创建一个唯一标识iframe的xpath,使用该xpath创建一个web元素,并将该web元素传递给切换帧。这更可靠。

假设你有如下的标记:-

<div id='noticeRichText'>
<iframe height="83px" frameborder="0" width="100%" scrolling="NO" '1331808552380'"="" +="" src="initialize.do?init=header&cacheBuster="  marginheight="0" marginwidth="0"> 
</div>

为iframe创建一个web元素:-

WebElement iframe=
driver.findElement(By.xpath("//*[@id='noticeRichText']/iframe"));

使用上面的元素切换到框架:-

driver.switchTo().frame(iframe);

在框架上执行所需的操作,然后使用:-

切换回父窗口
driver.switchTo().defaultContent();

对于窗口处理,您可以使用this…

String baseWindow = driver.getWindowHandle();
driver.switchTo().window(baseWindow);