【问题标题】:selenium webdriver - close all child window except one particular child window using foreach (java)selenium webdriver - 使用foreach(java)关闭除一个特定子窗口之外的所有子窗口
【发布时间】:2016-05-27 20:31:55
【问题描述】:
  1. 启动 popuptest.com
  2. 点击“多弹窗测试#2”
  3. 打印打开的窗口数
  4. 关闭所有窗口,但不关闭背景颜色为“#00C957”的父窗口和子窗口
  5. 打印页面URL和标题以及关闭的窗口
  6. 拍摄打开的窗口的快照。

请任何人帮助我编码:

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());*/
    }}

【问题讨论】:

    标签: eclipse selenium


    【解决方案1】:

    这段代码运行良好。

    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();
            }
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      相关资源
      最近更新 更多