2013-08-22 56 views
0

在這段代碼中,我使用了Single類和Functional類,這裏AllpagesLogins它是一個類名,並且這個代碼是在Functional類中編寫的,總體Scripit運行在TestNg類中。所以,當我點擊linkBtn名稱[email protected] 它顯示在該子窗口中的子窗口關閉鏈接按鈕是否存在,所以我寫代碼的子窗口代碼也由直接代碼,但沒有一個工作不正常?我如何處理這個孩子窗口?如何通過使用框架來處理Selenium Web驅動程序TestNg中的子窗口?

package EmailMessage; 

import java.util.Set; 

import org.junit.Assert; 

import org.openqa.selenium.By; 

import org.openqa.selenium.WebDriver; 

import org.openqa.selenium.WebElement; 

import Class.AllpagesLogins; 

//Declaring the Class Name 

public class EmailMessage 
{ 

public void EMSG(WebDriver driver) throws Exception 
{ 

//Here AllpagesLogins is a Class Name 

AllpagesLogins APL = new AllpagesLogins(); 

//Clicking on the Email Message Menu Button 

driver.findElement(By.id(APL.EMSG_EmailMsg_MenuBtn_ID)).click(); 

System.out.println("Clicked on the Email Message Menu Button"); 

Thread.sleep(2000); 

//Checking the Text for the Email Message Title 

WebElement asserta=driver.findElement(By.id(APL.EMSG_EmailMsg_MainTitle_ID)); 

String a=asserta.getText(); 

try 

{ 

Assert.assertEquals("Email Messages", a); 

System.out.println("Main Title Name as Email Messages"); 

} 

catch (Error e1) 

{ 


System.out.println("Wrong Title"); 

} 

//Checking the Text for the Sub Label 

WebElement assertb=driver.findElement(By.id(APL.EMSG_EmailMsg_SubLbl_ID)); 

String b=assertb.getText(); 

try 

{ 

Assert.assertEquals("Click on the Sender Email to view its details.", b); 

System.out.println("Main Title Name as Sub Label"); 

} 

catch (Error e1) 

{ 

System.out.println("Wrong Title"); 

} 

//Clicking on the Child Window 

//getting parent Id 

String Currenthandle=driver.getWindowHandle(); 

System.out.println("parent window id:"+Currenthandle); 

//handle the child window 

Set<String> handles= driver.getWindowHandles(); 

handles.remove(Currenthandle); 

//performing action on child window 

driver.switchTo().window(handles.iterator().next()); 

Thread.sleep(3000); 


//Clicking on the Email Message Menu Button 
      if(driver.findElement(By.linkText("[email protected]")).isDisplayed()) 

{ 

System.out.println("Link Name is Displaying"); 

driver.findElement(By.linkText("[email protected]")).click(); 

System.out.println("Clicked on the Email Id Link Button"); 

Thread.sleep(2000); 

} 

else 

{ 

System.out.println("Link Name is Not Displaying"); 

} 


//Handing the Child Windows 

if(driver.findElement(By.name("Message Details")).isDisplayed()) 

{ 

System.out.println("Message Details Label is Displaying"); 
       driver.findElement(By.id(APL.EMSG_ChildWindow_Close_LnkBtn_ID)).click(); 

System.out.println("Clicked on the Close Button in the Child Window"); 

Thread.sleep(2000); 

} 

else 


{ 

System.out.println("Message Details Label is Not Displaying"); 

} 


} 

} 
+0

我不明白對不起。你在談論一個彈出式窗口嗎? –

+0

我正在關注子窗口。 – user2707135

回答

0

的webdriver childDriver = Utility.getHandleToWindow( 「titleOfChildWindow」); childDriver.close();

0
//after clicking button . switch to the window using this code 

Set<String> winids = driver.getWindowHandles(); 
String mainWindow = winids.iterator().next(); 
String childWindow = winids.iterator().next(); 
driver.switchTo().window(childWindow);//this switches to the child window 

//after switching perform the operations which u want to perform on the child window 
相關問題