2016-09-21 47 views
0

在嘗試通過幀切換幀2(webelement)方法,我正在誤差作爲不能夠切換使用其先前發現webelement與幀到幀(Webelement)

元屬於不同的幀比當前一個

我的樣品的網頁上具有2個幀的名稱作爲FrameOne和FrameTwo在每個幀中的一個文本框..在第一幀爲名稱1和在第二幀文本框作爲名稱2.

driver.navigate().to("file:///D:/Study%20material/8850OS_Code/Chapter%203/HTML/Frames.html"); 


/***********By id***********************/ 
driver.switchTo().frame(1); //identify 2nd frame sucessfully 
WebElement Textbox2=driver.findElement(By.name("2")); //webelement in 2nd frame 
Textbox2.sendKeys("Hi Vivek"); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame(0).findElement(By.name("1")).sendKeys("Hello selenium"); 
driver.switchTo().defaultContent(); 
/*** 

/***********By WebElement***********************/ 
driver.switchTo().frame(Textbox2); ---> this line throws error 
Textbox2.sendKeys("Hi John"); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame(0).findElement(By.name("1")).sendKeys("Hello selenium"); 

請告訴我這種方法究竟是如何工作的,或者我犯了什麼錯誤。

+0

什麼語言是什麼?添加適當的標籤 – Tempux

+0

你能分享HTML代碼嗎?並指定你想實現什麼? –

+0

Saurabh,我想要使用其以前位於webelement的frame2來切換到frame2。 – Vivek

回答

0

您不能使用textbox2切換到幀。 webelement爲框架重載,以像其他任何元素一樣定位iframe元素。

WebElement iframe= driver.findElement(By.id(iframe)); 

driver.switchTo().frame(iframe); 
0

試試看看這個代碼。它適用於我...

driver.navigate()。(「file:/// D:/Study%20material/8850OS_Code/Chapter%203/HTML/Frames.html」);

/***********通過ID ***********************/

WebElement ifrm1= driver.findElement(By.id("FrameOne")); 
WebElement ifrm2= driver.findElement(By.id("FrameTwo")); 
driver.switchTo().frame(ifrm2); //identify 2nd frame sucessfully 
WebElement Textbox2=driver.findElement(By.name("2")); //webelement in 2nd frame 
Textbox2.sendKeys("Hi Vivek"); 
driver.switchTo().frame(ifrm1); // Switch Back to FrameOne 
driver.findElement(By.name("1")).sendKeys("Hello selenium"); 


/***********By WebElement***********************/ 
driver.switchTo().frame(Textbox2);  

的上面一行拋出錯誤爲「TextBox2中」不是一個框架元素上的框架

更多信息,可以在https://www.seleniumeasy.com/selenium-tutorials/how-to-work-with-iframes-in-selenium-webdriver找到

希望它有幫助

+0

嗨Prajesh,根據你,我們是否必須在switchto().frame(Webelemnt)方法中給框架webelement,但根據我的理解,我們可以使用它以前定位的WebElement來選擇一個框架。 這就是爲什麼我通過Textbox2,因爲它以前在frameeplementeplementplease糾正我 – Vivek

+0

遲到的道歉反應遲。是的,您必須指定框架webelement或框架編號/名稱。它在上面提到的鏈接中解釋。 –