selenium webdriver学习(五)------------iframe的处理

上一篇 / 下一篇  2012-11-21 15:47:24 / 个人分类:webdriver

有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题。这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一。如果你在一个default content中查找一个在iframe中的元素,那肯定是找不到的。反之你在一个iframe中查找另一个iframe元素或default content中的元素,那必然也定位不到。

selenium webdriver中提供了进入一个iframe的方法:

WebDriver org.openqa.selenium.WebDriver.TargetLocator.frame(String nameOrId)

也提供了一个返回default content的方法:

WebDriver org.openqa.selenium.WebDriver.TargetLocator.defaultContent()

这样使我们面对iframe时可以轻松应对。

以下面的html代码为例,我们看一下处现iframe

 

Html代码  

1. main.html  

2.   

3. <html>  

4.     <head>  

5.         <title>FrameTest</title>  

6.     </head>  

7.     <body>  

8.     <div id = "id1">this is a div!</div>  

9.         <iframe id = "frame"  frameborder="0" scrolling="no" style="left:0;position:absolute;" src = "frame.html"></iframe>  

10.    </body>  

11.</html>  

12.  

13.  

14.  

15.frame.html  

16.  

17.<html>  

18.    <head>  

19.        <title>this is a frame!</title>  

20.    </head>  

21.    <body>  

22.    <div id = "div1">this is a divtoo!</div>  

23.    <label>input:</label>  

24.    <input id = "input1"></input>  

25.    </body>  

26.</html>  

 

Java代码  

1. import org.openqa.selenium.By;  

2. import org.openqa.selenium.WebDriver;  

3. import org.openqa.selenium.firefox.FirefoxDriver;  

4.   

5. public class FameStudy {  

6.   

7.       

8.     public static void main(String[] args) {  

9.         WebDriver dr = new FirefoxDriver();  

10.        String url = "\\Your\\Path\\to\\main.html";  

11.        dr.get(url);  

12.  

13.        //default content定位id="id1"div  

14.        dr.findElement(By.id("id1"));  

15.          

TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 5663
  • 日志数: 8
  • 建立时间: 2012-11-14
  • 更新时间: 2012-11-21

RSS订阅

Open Toolbar