2017-11-07 10 views
1

誰でも、セレンのwebdriver Javaで処理するウィンドウを解決するのに手伝ってください。複数のWindowsをSeleniumで処理するJavaを使用する

私のアプリケーションには3つまたは4つのウィンドウがあります。以下のコードを使用して2つのウィンドウが正常に開きます。以下のコードで3つのウィンドウを実行したい場合は、1つ目のウィンドウにリダイレクトします。

---------------------------------コード------------ -------------------------------------------------- ----------------------------

String parent=driver.getWindowHandle(); 

CompanyClick.click(); 

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

int count=s1.size(); 

System.out.println("Total window" +count); 

     for(String child:s1) 
     { 
      if(!parent.equalsIgnoreCase(child)) { 
       driver.switchTo().window(child); 

       Thread.sleep(3000); 

       } 
      } 

答えて

0

フォーク、以下のコードが動作しています!私は解決策を見つけた

String adminWindow = driver.getWindowHandle(); 

    System.out.println(adminWindow); 

    ClickBuissness.click(); 

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

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

    String agentWindow = null; 

    int count =allWindows.size(); 

    System.out.println("Total window" + count); 

    for(String windowHandle : allWindows){ 

     if (!windowHandle.equals(adminWindow)) 

      agentWindow=windowHandle; 
    } 
     driver.switchTo().window(agentWindow); 


     } 
0

私は100%確実ではないですが、スイッチはフレームに前

を試してみてください

driver.switchTo.defaultContent()

+0

それは最初の親ウィンドウにリダイレクトされました – iamsankalp89

0

これを試してみてください。 1〜9:

public void SwitchToAnotherWindow(Webdriver driver,int window_number){ 

    List<String> windowlist = null; 

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

    windowlist = new ArrayList<String>(windows); 

    String currentWindow = driver.getWindowHandle(); 

if (!currentWindow.equalsIgnoreCase(windowlist.get(window_number - 1))) 
    { 
     driver.switchTo().window(windowlist.get(window_number - 1)); 
    } 

} 

はちょうどあなたがあなただけのこのメソッドに3を渡す3ウィンドウに切り替えたい場合などに実行したいウィンドウウィンドウ番号を渡し、それが直接 (EX用の任意のウィンドウにシャッフルすることができますウィンドウ、または9〜4ウィンドウ)

関連する問題