2016-08-24 2 views
0

일부 작업을 수행하려면 하위 창을 닫고 상위 창으로 다시 전환해야합니다.Selenium WebDriver에서 부모 창으로 다시 전환하는 방법은 무엇입니까?

public void setUp() throws Exception { 
    driver = new FirefoxDriver(); 
    baseUrl = "http://www.example.com/"; 
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
} 

@Test 
public void testUntitled2() throws Exception { 
    driver.get(baseUrl + "/info.php"); 
    driver.findElement(By.cssSelector("i.fa.fa-facebook-sq")).click(); 
    for (String winHandle : driver.getWindowHandles()) { 
     driver.switchTo().window(winHandle); 
    } 

    // Perform the actions on new window 
    driver.close(); // This will close new opened window 

    //driver.switchTo().window(winHandleBefore); // I need to perform below 

    driver.findElement(By.cssSelector("i.fa.fa-twitter-square")).click(); 
    driver.findElement(By.cssSelector("i.fa.fa-google-plus- squ)).click(); 
    driver.findElement(By.cssSelector("i.fa.fa-linkedin-square")).click(); 
} 
+0

가능한 복제 [셀레늄 webdriver에서 부모 창에 자식 창에서 컨트롤을 전환하는 방법?] (http://stackoverflow.com/questions/14620253/how-to-switch-control-from-child- 창 - 투 - 부모 창 - 셀레늄 - 웹 드라이버) –

답변

0

이 코드를 사용하여 하위 창으로 전환 한 다음 상위 창으로 되돌릴 수 있습니다.

코드 :

String parentWindowHandler = driver.getWindowHandle(); // Store your parent window 
      String subWindowHandler = null; 

      Set<String> handles = driver.getWindowHandles(); // get all window handles 
      Iterator<String> iterator = handles.iterator(); 
      while (iterator.hasNext()){ 
       subWindowHandler = iterator.next(); 
      } 
      driver.switchTo().window(subWindowHandler); 

*****perform operations on child window****************** 

driver.switchTo().window(parentWindowHandler); 

나는

0

이 windowhandle이 for 루프 저장하기 전에 하나 parentWindowHandle 문자열 변수를 만들고이 방법으로 문제가 해결되기를 바랍니다. 하위 창을 사용하여 작업을 완료하면 parentWindowHandle으로 돌아갑니다.

String parentWindowHandle = driver.getWindowHandle(); 
/* You code to move to child window*/ 

//After you done with child window 
driver.switchTo().window(parentWindowHandle); 
관련 문제