2013-01-21 30 views
0

我們如何在iFrame中的iFrame上執行操作?如何使用Selenium對子iFrame執行操作?

HTML:

<div id="div1"> 
<iframe id="iframe1"> 
    <div id="div2"> 
    <iframe id="iframe2"> 
    </iframe> 
    </div> 
    <div id="div3"> 
    <iframe id="iframe3"> 
    </iframe> 
    </div> 
</iframe> 
</div> 

我需要執行的iframe2和iframe3行動。試着用下面的代碼:

1. driver.switchTo().frame("iframe1.0.iframe2"); 
2. WebElement firstFrame = driver.findElement(By.id("iframe1")); 
    driver.switchTo().frame(firstFrame); 
    WebElement secondFrame = driver.findElement(By.id("iframe2")); 
    driver.switchTo().frame(secondFrame); 

但無法解決問題。

請建議是否有其他方法要遵循。

回答

0

嘗試這樣

//switch the control to first frame 
WebElement firstFrame = driver.findElement(By.id("iframe1")); 
driver.switchTo().frame(firstFrame); 

//switch the control to second frame 
WebElement secondFrame = driver.findElement(By.id("iframe2")); 
driver.switchTo().frame(secondFrame); 

//Switch back the control to first frame before switch it to frame3 
driver.switchTo().frame(firstFrame); 

WebElement thirdFrame = driver.findElement(By.id("iframe3")); 
driver.switchTo().frame(thirdFrame); 
0

試試這個片斷。

//Switch To parent frame "iframe1" 
WebElement parentFrame = driver.findElement(By.id("iframe1")); 
driver.switchTo.frame(parentFrame); 

//Switch To first child frame "iframe2" 
WebElement firstChildFrame = driver.findElement(By.id("iframe2")); 
driver.switchTo.frame(firstChildFrame); 

//Do some actions on iframe2 
//Switch To Top (or) Parent frame by using 
driver.switchTo().defaultContent(); 

//Switch To parent frame "iframe1" 
WebElement parentFrame = driver.findElement(By.id("iframe1")); 
driver.switchTo.frame(parentFrame); 

//Switch To second child frame "iframe3" 
WebElement secondChildFrame = driver.findElement(By.id("iframe3")); 
driver.switchTo.frame(secondChildFrame); 

有關選擇幀的信息使用此http://darrellgrainger.blogspot.ca/2012/04/frames-and-webdriver.html

相關問題