selenium与webdriver测试弹出窗口

来源:互联网 发布:ruby精粹专家编程 pdf 编辑:程序博客网 时间:2024/04/30 14:45

selenium 2.0更多的是selenium1.0和webdriver的集成,因此是兼容1.0的(详细:http://www.ibm.com/developerworks/cn/web/1309_fengyq_seleniumvswebdriver/)。也就是说利用webdriver实例可以构建selenium的实例:

WebDriver driver = new FirefoxDriver();Selenium selenium = new WebDriverBackedSelenium(driver, "https://apps.na.collabserv.com/");


我们知道selenium 1.0如果测试弹出窗口的时候,可以利用selectWindow来实现,代码如下:

        String[] titles= selenium.getAllWindowTitles();        for(int i=0; i<titles.length; i++){            Logger.logMessage("Title is " + titles[i]);            if(titles[i].contains("pop up window title")){                selenium.selectWindow(titles[i]);                //do what you want to verify in the popup window                selenium.close();  //close the popup window                result=true;                 break;             }         } 


遗憾的是,在实践过程中,发现利用webdriver构建的selenium,上面的代码却失效了。主要体现在当弹出窗口关闭后,选择回原来的窗口时,用selenium.selectWindow(string)当传参数null或者title都出现异常。于是不得不修改代码采用webdriver方法来处理了(参考:http://blog.csdn.net/planisnothing/article/details/7580556)。通过运行发现现在正常了。

        String mainWinHandler = driver.getWindowHandle();        selenium.click(locator);  //popup window        //wait some time to load        for(String handler : driver.getWindowHandles()){            WebDriver popup = driver.switchTo().window(handler);            if(popup.getTitle().contains("pop up title")){                bretVal = true;                popup.close();  //close pop up                break;            }        }        driver.switchTo().window(mainWinHandler);  //return to the previous window


原创粉丝点击