码迷,mamicode.com
首页 > Web开发 > 详细

Selenium里WebDriver中窗口的close()与quit()

时间:2015-02-28 14:37:28      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

在使用webdriver操作时,点击主窗口的链接,会弹出子窗口。此时就会有两个窗口,如主窗口为mainWindow,子窗口为detailWindow。

1、使用detailWindow = mainWindow.switchTo().window(detailWindowHandle); 切换并定位到子窗口中。

2、然后关闭子窗口,调用detailWindow.quit(),

3、mainWindow.switchTo().window(mainWindowHandle); 切换回到父窗口

4、mainWindow.quit();关闭父窗口

程序执行到第四步时,出错了,提示类似“no a session ……”错误信息,

查了一下网上的webdreiver 的 api,才发现,

quit()详细信息:  “Quits this driver, closing every associated window”,执行这个方法后,driver会关闭所有关联窗口。

close()详细信息:Close the current window, quitting the browser if it‘s the last window currently open  ,此方法是关闭当前窗口,或最后打开的窗口。


部分代码如下:

//   author: aerchi, aerchi@gmail.com
                                         Set<String> handles = mainWindow.getWindowHandles();
					 Out.println(handles);
					 		
					 Out.println("Change to detail page");
//					 detailWindow=WindowUtil.getPopupWindow(mainWindow);
					 Iterator<String> itWin = handles.iterator();
				          while(itWin.hasNext()) {
				            String key = itWin.next();
				            if (mainWindowHandle.equals(key)) {
				                continue;
				            }
				            detailWindowHandle = key;
				         }
//   author: aerchi, aerchi@gmail.com
					 detailWindow = mainWindow.switchTo().window(detailWindowHandle);					 
//					 detailWindowHandle = WindowUtil.getWindowHandle(detailWindow);	
					
					 detailWindow.close();
					 handles.remove(detailWindowHandle);
					 
					 //切换到主窗口
					 mainWindow = mainWindow.switchTo().window(mainWindowHandle);
//   author: aerchi, aerchi@gmail.com



弄明白了,这两个方法的不同,以上错误信息就能迎刃而解了。

大功造成,特此记录一下。

版权所有,转载请注明出处。

本文地址: http://blog.csdn.net/aerchi/article/details/43985099

Selenium里WebDriver中窗口的close()与quit()

标签:

原文地址:http://blog.csdn.net/aerchi/article/details/43985099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!