题前话(Pre-words)

希望使用Selenium 2.0的人看到这篇文章能够收藏此文,以后遇到该问题,再也不用花费多余的时间进行research了!本文就是对网上所有千奇百怪各种各样的search结果所做的最好总结。

问题概述(Question)

IE11不支持Selenium 2.0,在什么情况下不支持呢?比如:获取通过WebDriver获取页面上的元素时,你经常会捕获到这样的异常:

OpenQA.Selenium.NoSuchWindowException: Unable to find element on closed window
   at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1139
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 923
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 954
   at SharePoint_Automation.mainForm.waitUntilPageLoaded(IWebDriver iw, String eleID) in C:\Users\Administrator\documents\visual studio 2015\Projects\SharePoint Automation\SharePoint Automation\Form1.cs:line 116

上面这段异常的重点在于:

OpenQA.Selenium.NoSuchWindowException: Unable to find element on closed window

解决方案(Solution)

经过不屑的努力,最终让我找到了这一问题的解决方案如下(蓝色字体为针对64bit计算机的最终解决手段):

For IE 11 only, you will need to set a registry entry on the target computer so that the driver can maintain a connection to the instance of Internet Explorer it creates. (这段告诉你需要修改注册表。)

For 32-bit Windows installations, the key you must examine in the registry editor is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. (32bit Windows看这里。)

For 64-bit Windows installations, the key is HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. Please note that the FEATURE_BFCACHE subkey may or may not be present, and should be created if it is not present. Important: Inside this key, create a DWORD value named iexplore.exe with the value of 0.(64bit Windows看这里。)

翻译过来的意思即,修改你的注册表(Run->regedit->Enter),路径如下:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果FeatureControl下没有FEATURE_BFCACHE,就以FEATURE_BFCACHE为名new一个key!并在其下创建一个DWORD,取名为:iexplore.exe,value为0。

修改完你的注册表后,重启你的计算机。之后以管理员权限运行Visual Studio,打开你的项目,运行,你会发现,问题解决了。

Congratulations!这几个小时没有白费,终于让我找到了解决方案!网上千奇百怪的说法很多,但是没有一个好使的!

希望看到这篇文章的人能够收藏此文,以后遇到了这个问题,再也不用花费多余的时间进行research了!

感谢以下两篇文章:

Selenium - NoSuchWindowException in IE 11

InternetExplorerDriver

另:

若想正常使用WebDriver,请确保你的浏览器选项中security中各个zone的Protected Mode都是勾选着/非勾选着的,一定要统一才行!否则WebDriver将无法打开浏览器,会有如下异常:

System.InvalidOperationException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)

IE11不支持Selenium 2.0的解决方法的更多相关文章

  1. 让 Windows7 - 64bit 支持 VC++ 6.0 的解决方法(无法启动此程序,因为计算机中丢失 MSVCRTD.dll。尝试重新安装该程序以解决此问题)

    源地址:https://www.cnblogs.com/poissonnotes/p/4372136.html 无法启动此程序,因为计算机中丢失 MSVCRTD.dll.尝试重新安装该程序以解决此问题 ...

  2. 不支持关键字“metadata”问题的解决方法

    不支持关键字“metadata”问题的解决方法 原来的语句: metadata=res://*/Models.CallCenterEntities2.0.csdl|res://*/Models.Cal ...

  3. firefox chrome ie9,10,11 不支持selectSingleNode和selectNodes的解决方法

    firefox并不支持selectSingleNode和selectNodes的解决方法 function test(){ var perid = document.thisForm.PerID.va ...

  4. win7系统总是安装不了net2.0的解决方法

    一些网友询问说ghost win7系统总是安装不了net2.0怎么办呢?net2.0是什么?ATI显卡的控制中心 就需要在NET2.0的基础上.可是一些用户说win7系统总是安装不了net2.0如何解 ...

  5. mysql sum 为 0 的解决方法

    使用SQL语句SUM函数的时候,默认查询没有值的情况下返回的是null,而实际可能我们要用的是返回0. 解决方法:SELECT SUM(count) FROM test_table 改成: SELEC ...

  6. 在Windows Server2008R2中导入Excel不能使用Jet 4.0的解决方法

    一直使用以下代码从Excel中取数据,速度快方便: string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Dat ...

  7. selenium元素单击不稳定解决方法

    selenium自动化测试过程中,经常会发现某一元素单击,很不稳定,有时候执行了点击没有反映. 以下总结两种解决方法:都是通过js注入的方式去点击. 1.F12查一看,要点击的按钮,或连接,有没有on ...

  8. PLSQL Developer不支持Oracle 64位客户端解决方法

    问题描述: 在虚拟机同网段,搭建Oracle 11.2.04数据库64位的,本机操作系统Win10 x64和PLSQL 9.03,目前想利用PLSQL远程登录ORACLE数据库操作.当初用 insta ...

  9. 关于“类不能支持Automation操作”错误的解决方法

    一段程序IE上老是提示“类不支持Automation操作”的错误,IE6.7.8都一样,但是Firefox可以,后来网上找到如下解决方法: 重新注册下以下文件,问题便解决了:msscript.ocxd ...

随机推荐

  1. python之函数用法any()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法any() #any() #说明:如果iterable的任何元素不为0.''.Fals ...

  2. ribbon区域亲和配置一例

    只需在springboot的配置文件中添加以下内容即可: eureka.instance.metadata-map.zone=left 该配置是一个eureka客户端的配置,并且该客户端使用了ribb ...

  3. OpenStack网络介绍

    OpenStack网络介绍     OpenStack里面的网络相对复杂.经常有人对几个网络概念搞混淆.因此,本文对OpenStack里面的Provider network 和 Tenant netw ...

  4. 推荐6款极具个性化的在线生成logo的网站

    http://www.douban.com/group/topic/10434724/

  5. iOS 即时通讯,从入门到 “放弃”?

    原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. — ...

  6. Android Fragment之间传递List数据

    要说的是在两个Fragment之间传递List数据,比如有个List<User>,以及传递字符串数据,比如testId,该如何从FragmentA传递到FragmentB呢? 下面这个例子 ...

  7. Objective-C学习笔记(四)——OC实现最简单的数学运算

    本篇帖子会实现使用OC的最简单的加减乘除运算.学习的知识点包含变量定义.运算方法,格式化输出等概念.主要学习主要的语法,事实上和C语言的语法还是比較相似的. 具体代码仅仅要写在main方法中即可了.具 ...

  8. Unity3d的lodgroup调节

    才发现,假设不惬意LodGroup的百分比调节,能够在通过质量->中的Lod Bias值进行调节. 值为0-1之间 ,表示靠近精细与粗糙Lod的比率. 这样能解决用百分比调节不给力的问题.

  9. Math.Celing、Math.Floor、Math.DivRem与Math.BigMul

    返回大于或等于指定数字的最小整数.例如: double a=Math.Celing(0.00);  //0 double a=Math.Celing(0.40);  //1 double a=Math ...

  10. vue开发环境搭建win10

    需要安装nodejs, webpack@2.2.1, babel-cli,  vue-cli 1 安装nodejs 现在版本默认会安装nodejs 和 npm包 和 配置环境 2 检查是否安装成功,在 ...