您的位置:首页 > 其它

selenium与webdriver测试弹出窗口

2013-11-26 17:01 363 查看
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方法来处理了(参考:/article/10444068.html)。通过运行发现现在正常了。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: