有时候我们定位元素的时候,发明怎么都定位不了。 这时候你需要查一查你要定位的元素是否在iframe内里。
什么是iframe
iframe 就是HTML 中,软件开发,用于网页嵌套网页的。 一个网页可以嵌套到另一个网页中,劳务派遣管理系统,可以嵌套许多层。
Selenium 中提供了进入iframe 的要领
// 进入 id 叫frameA 的 iframe dr.switchTo().frame("frameA"); // 回到主窗口 dr.switchTo().defaultContent();
main.html
<html> <head> <title>FrameTest</title> </head> <body> <div id="id1">this is main page's div!</div> <input type="text" id="maininput" /> <br/> <iframe id="frameA" frameborder="0" scrolling="no" style="left:0;position:absolute;" src="frame.html"></iframe> </body> </html>
frame.html
<html> <head> <title>this is a frame!</title> </head> <body> <div id="div1">this is iframes div,</div> <input id="iframeinput"></input> </body> </html>
selenium 代码
public static void testIframe(WebDriver driver) { driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦东软件园培训中心\\我的课本\\Selenium Webdriver\\frame\\main.html"); // 在 主窗口的时候 driver.findElement(By.id("maininput")).sendKeys("main input"); // 此时 没有进入到iframe, 以下语句会报错 //driver.findElement(By.id("iframeinput")).sendKeys("iframe input"); driver.switchTo().frame("frameA"); driver.findElement(By.id("iframeinput")).sendKeys("iframe input"); // 此时没有在主窗口,软件开发,下面语句会报错 //driver.findElement(By.id("maininput")).sendKeys("main input"); // 回到主窗口 driver.switchTo().defaultContent(); driver.findElement(By.id("maininput")).sendKeys("main input"); }
附: selenium java教程 (连载中, 敬请等候)
java selenium (一) selenium 先容
java selenium (二) 情况搭建要领一
java selenium (三) 情况搭建 基于Maven
java selenium (四) 利用欣赏器调试东西
java selenium (五) 元素定位大全
java selenium (六) xpath 定位
java selenium (七) CSS 定位
java selenium (八) Selenium IDE 用法
java selenium (九) 常见web UI 元素操纵 及API利用
java selenium (十) 操纵欣赏器
java selenium (十一) 操纵弹出对话框
java selenium (十二) 操纵弹出窗口
java selenium (十三) 智能期待页面加载完成
java selenium (十四) 处理惩罚Iframe 中的元素