我正在使用 firebug 检查 xpath,一 block firebug 显示您在窗口或 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();
注意:当我检查 html 代码中的 iframe 时,它内部不包含其他文档,它只包含 id 和其他样式以及 all 和 src 标记。
请建议我是否可以通过其他方式检测该元素。
最佳答案
有多种方法可以切换到 iframe,例如使用框架 id、名称、索引以及通过 webElement。
可能在您的情况下,可能没有 iframe id 或名称。最好的方法是创建一个唯一标识 iframe 的 xpath,使用此 xpath 创建一个 webelement 并将此 webelement 传递给 switch 框架。这样比较靠谱。
假设您有如下标记:-
<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 创建 WebElement:-
WebElement iframe=
driver.findElement(By.xpath("//*[@id='noticeRichText']/iframe"));
使用上面的 webelement 切换到框架:-
driver.switchTo().frame(iframe);
在框架上执行所需的操作,然后使用以下命令切换回父窗口:-
driver.switchTo().defaultContent();
关于javascript - 如何将驱动程序控制从顶部窗口切换到 iframe#mainFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808453/