我使用firebug来检查xpath,一块firebug显示你的发现在窗口或iframe中的元素等等。我面临类似的问题,它向我展示了两个选项 1:顶部窗口 2:iframe #mainframe 现在的问题是,当我检查它在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标记。
请建议是否有其他方法可以检测到该元素。
答案 0 :(得分:1)
有多种方法可以切换到iframe,例如使用frame id,name,index和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();
答案 1 :(得分:-1)
对于窗口处理,您可以使用此...
String baseWindow = driver.getWindowHandle();
driver.switchTo().window(baseWindow);