java selenium处理Iframe中的元素示例

时间:2021-12-17 08:19:52

java selenium  处理Iframe 中的元素

有时候我们定位元素的时候,发现怎么都定位不了。 这时候你需要查一查你要定位的元素是否在iframe里面

阅读目录

什么是iframe

iframe 就是HTML 中,用于网页嵌套网页的。 一个网页可以嵌套到另一个网页中,可以嵌套很多层。

selenium 中提供了进入iframe 的方法

?
1
2
3
4
5
6
// 进入 id 叫frameA 的 iframe
dr.switchTo().frame("frameA");
 
// 回到主窗口
dr.switchTo().defaultContent();

main.html

?
1
2
3
4
5
6
7
8
9
10
11
<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

?
1
2
3
4
5
6
7
8
9
<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 代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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");
  }

以上就是java selenium处理Iframe中的元素的示例,后续继续整理相关资料,谢谢大家对本站的支持!