webdriver.close 报错问题 解决方案 - Go语言中文社区

webdriver.close 报错问题 解决方案


解决方案转载自:

 http://blog.csdn.net/aerchi/article/details/43985099

使用appium wd.close()时遇见报错:

Method is not implemented ..




在使用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  ,此方法是关闭当前窗口,或最后打开的窗口。


部分代码如下:

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. //   author: aerchi, aerchi@gmail.com  
  2.                      Set<String> handles = mainWindow.getWindowHandles();  
  3.                      Out.println(handles);  
  4.                               
  5.                      Out.println("Change to detail page");  
  6. //                   detailWindow=WindowUtil.getPopupWindow(mainWindow);  
  7.                      Iterator<String> itWin = handles.iterator();  
  8.                           while(itWin.hasNext()) {  
  9.                             String key = itWin.next();  
  10.                             if (mainWindowHandle.equals(key)) {  
  11.                                 continue;  
  12.                             }  
  13.                             detailWindowHandle = key;  
  14.                          }  
  15. //   author: aerchi, aerchi@gmail.com  
  16.                      detailWindow = mainWindow.switchTo().window(detailWindowHandle);                      
  17. //                   detailWindowHandle = WindowUtil.getWindowHandle(detailWindow);   
  18.                       
  19.                      detailWindow.close();  
  20.                      handles.remove(detailWindowHandle);  
  21.                        
  22.                      //切换到主窗口  
  23.                      mainWindow = mainWindow.switchTo().window(mainWindowHandle);  
  24. //   author: aerchi, aerchi@gmail.com  



1. webDriver.Close() - Close the browser window that the driver has focus of //关闭当前焦点所在的窗口
2. webDriver.Quit() - Calls dispose //调用dispose方法
3. webDriver.Dispose() Closes all browser windows and safely ends the session 关闭所有窗口,并且安全关闭session


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

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


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gloria0610/article/details/54691685
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-05 15:29:05
  • 阅读 ( 1678 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢