如何将驱动程序控制从顶部窗口切换到iframe#mainFrame
how to switch driver control from the top window to iframe#mainFrame
我使用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);
相关文章:
- 防止Iframe窗体在新窗口中打开
- node-webkit-从父窗口捕获iframe鼠标事件
- 如何关闭html中的iframe弹出窗口
- 允许父窗口在其不同域的子iframe上调用函数
- 检查iframe内部的窗口是否已关闭
- 在jQuery中的IFrame中提交表单后刷新父窗口
- 在引导程序弹出窗口中显示iframe
- 可以'iframe的父窗口中发生捕获错误
- 如何在不使用iframe或库的情况下创建剪切显示窗口区域
- 获取相对于窗口的IFRAME位置
- iframe是否可能在没有主窗口帮助的情况下自行调整大小
- 如何在窗口调整大小时调整iframe的大小
- Iframe如何访问chrome扩展中的父窗口
- 从父窗口上的iFrame内容中关闭iFrame
- 关闭iframe中的模式弹出窗口
- 在iframe内的新选项卡/窗口中打开
- 从子项(iframe)检测窗口关闭命令
- `base`tag导致iframe在Internet Explorer中以新窗口的形式打开
- 是否可以打开一个新窗口并将iframe嵌入其中
- IE11 iFrame点击事件弹出以影响窗口