selenium与webdriver测试弹出窗口

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值