2016-05-27 9 views
0
  1. 起動popuptest.com
  2. ウィンドウの数が開か
  3. 印刷
  4. クリックして「2マルチポップアップテスト#」
  5. のforeachを使用してすべてのウィンドウを閉じ、親ウィンドウと背景色が「#00C957」の子ウィンドウを閉じない
  6. ページURLとタイトルと閉じたウィンドウを印刷する
  7. 開いているウィンドウのスナップショットを撮ります。

いずれかのコーディングで私を助けてください:このコードは完璧に働いているセレンwebdriverを - 近くにある特定の子ウィンドウ以外のすべての子ウィンドウ(Java)の

System.setProperty("webdriver.chrome.driver", "path + chromedriver.exe"); 
     ChromeDriver driver = new ChromeDriver(); 
     driver.get("http://popuptest.com/"); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     String parentWindow = driver.getWindowHandle(); 
     System.out.println("Parent Window Session ID :" +parentWindow); 
     driver.findElementByLinkText("Multi-PopUp Test #2").click(); 

     Set<String> allHandles = driver.getWindowHandles(); 
     System.out.println("Get All Windows :" +allHandles.size()); 
     for (String window: allHandles) { 
     driver.switchTo().window(window); 
     WebElement popwindow = driver.findElementByXPath("//body[@bgcolor='#00C957']"); 
      if(!window.equals(popwindow)) 
      { 
      driver.close(); 
      System.out.println("Get Title" +driver.getTitle()); 
      System.out.println("Get Current URl" +driver.getCurrentUrl());*/ 
    }} 

答えて

0

import java.util.Set; 
import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class Pop_up_Child_Window_pop_up_example_4 
{ 

    public static void main(String[] args) throws InterruptedException 
    { 
     WebDriver driver = new FirefoxDriver(); 
     driver.manage().window().maximize(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     driver.get("http://popuptest.com/popuptest12.html"); 

     Set<String> windowIDs = driver.getWindowHandles(); 
     Thread.sleep(2000); 

     System.out.println("number of windows opened --> "+ windowIDs.size()); 

     Iterator<String> it = windowIDs.iterator(); 
     String parent = it.next(); 

     // child pop 1 
     String child = it.next(); 
     driver.switchTo().window(child); 
     driver.manage().window().maximize(); 

     WebElement attri = driver.findElement(By.xpath("//body[@bgcolor='#3D59AB']")); 
     String bgOfChild = attri.getAttribute("bgcolor"); 
     System.out.println(bgOfChild); 
     if(!bgOfChild.equals("#FF6633")) 
     { 
      driver.close(); 
     } 

     // child pop 2 
     String child2 = it.next(); 
     driver.switchTo().window(child2); 
     driver.manage().window().maximize(); 

     WebElement attri2 = driver.findElement(By.xpath("//body[@bgcolor='#FF6633']")); 
     String bgOfChild2 = attri2.getAttribute("bgcolor"); 
     System.out.println(bgOfChild2); 
     if(!bgOfChild2.equals("#FF6633")) 
     { 
      driver.close(); 
     } 

     // child pop 3 
     String child3 = it.next(); 
     driver.switchTo().window(child3); 
     driver.manage().window().maximize(); 

     WebElement attri3 = driver.findElement(By.xpath("//body[@bgcolor='#00C957']")); 
     String bgOfChild3 = attri3.getAttribute("bgcolor"); 
     System.out.println(bgOfChild3); 
     if(!bgOfChild3.equals("#FF6633")) 
     { 
      driver.close(); 
     } 

    } 

} 
関連する問題