zoukankan      html  css  js  c++  java
  • java selenium (十二) 操作弹出窗口

    selenium 中如何处理弹出窗口

    阅读目录

    1. 原理
    2. 测试页面的HTML
    3. Java 代码

     

    原理

    在代码里, 通过         Set<String> allWindowsId = driver.getWindowHandles();

    来获取到所有弹出浏览器的句柄,   然后遍历,  使用swithcto.window(newwindow_handle)方法。 就可以定位到新的窗口

     

    测试页面的HTML

    复制代码
    <html>
    <head>
        <title>常见web ui元素操作, 及API使用</title>
        <script type="text/javascript">
            function open_win() 
            {
            window.open("http://www.cnblogs.com")
            }
        </script>
    </head>
    <body>
    
        <form>
            <input type=button value="打开窗口" onclick="open_win()">
        </form>
        </div>
    </body>
    </html>
    复制代码

     

    Java 代码

    复制代码
        public static void testMultipleWindowsTitle(WebDriver driver) throws Exception
        {
            String url="E:\StashFolder\huoli_28@hotmail.com\Stash\Tank-MoneyProject\Selenium Webdriver\AllUIElement.html";
            driver.get(url);
            // 获取当前窗口的句柄
            String parentWindowId = driver.getWindowHandle();
            System.out.println("driver.getTitle(): " + driver.getTitle());
            
            WebElement button = driver.findElement(By.xpath("//input[@value='打开窗口']"));
            button.click();
            
            Set<String> allWindowsId = driver.getWindowHandles();
            
            // 获取所有的打开窗口的句柄
            for (String windowId : allWindowsId) {
                if (driver.switchTo().window(windowId).getTitle().contains("博客园")) {
                    driver.switchTo().window(windowId);
                    break;
                }
            }
            
            System.out.println("driver.getTitle(): " + driver.getTitle());
            
            // 再次切换回原来的父窗口
            driver.switchTo().window(parentWindowId);
            System.out.println("parentWindowId: " + driver.getTitle());
        }
    复制代码
  • 相关阅读:
    我的软考之路
    VB成员函数集锦
    关于软件维护问题的几点思考
    element样式调整用到的东西
    JS实现旋转的魔方
    关于echarts 重绘/图表切换/数据清空
    CSS3 @keyframes 实现匀速旋转魔方(搬运工)
    在vue的js文件引入自定义js文件
    记录 vue+element树节点的标注
    echarts 设置图例文本不可点击
  • 原文地址:https://www.cnblogs.com/nieliangcai/p/7149110.html
Copyright © 2011-2022 走看看