selenium+java多層級frame切換的問題


 

  關於selenium多層iframe切換,及iframe沒有id和name屬性的情況下進行切換的問題。(如下圖:)

 

 

  問題:  

  1. 在切入到frame:left中后,直接切換其他同級和上級frame報錯

  2. 在切入到frame:left中后,再切換到它下面的frame:index時后無法直接定位要獲取的div如上圖

 

  原因分析:

  問題1:在切入到frame:left中后,要切換到與left同級的frame:index中,需先切回到初始狀態defaultContent。然后再逐級向內層的frame中切換

  問題2:在切入到內層的frame:index中后,發現還有一個iframe沒有名稱和id,需要先切換到該iframe中才能定位到需要的div

 

  代碼如下:

  

 1 public class testFrame {  
 2   
 3     private WebDriver driver;  
 4     private String baseUrl;  
 5     private WebDriverWait wait;  
 6   
 7     @Before  
 8     public void setUp() {  
 9         driver = new FirefoxDriver();  
10         baseUrl = "http://XXXX";  
11         wait = new WebDriverWait(driver, 5);  
12         driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);  
13     }  
14   
15     @Test  
16     public void testFrame() throws InterruptedException {  
17         driver.get(baseUrl);  
18         wait.until(new ExpectedCondition<WebElement>() {  
19   
20             @Override  
21             public WebElement apply(WebDriver d) {  
22                 // TODO Auto-generated method stub  
23                 return d.findElement(By.tagName("frame"));  
24             }  
25   
26         });  
27         driver.switchTo().frame("index");  
28         driver.switchTo().frame("mainindex");  
29         driver.switchTo().frame("left");  
30         driver.findElement(By.xpath("//li[2]/span")).click();  
31         driver.findElement(By.xpath("//li[3]/span")).click();  
32         driver.findElement(By.xpath("//li[3]/ul/li/a/span")).click();  
33         driver.switchTo().defaultContent();  
34         driver.switchTo().frame("index");  
35         driver.switchTo().frame("mainindex");  
36         driver.switchTo().frame("index");  
37         driver.switchTo().frame(driver.findElement(By.tagName("iframe")));  
38         driver.findElement(By.xpath("/html/body/div/div"));  
39     }  
40   
41     @After  
42     public void tearDown() {  
43         driver.quit();  
44     }  
45 }  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM