IE11不支持Selenium 2.0的解决方法

题前话(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

时间: 2024-10-20 03:35:52

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

node-webkit 不支持html5_video播放mp4的解决方法

原因: mp4似乎是有专利的影音格式.node-webkit不对其进行支持…… 似乎是.. 解决方法 : 在本地安装chrome浏览器,进行安装目录(例:c:\Google\Chrome\Application\37.0.2062.103),找到ffmpegsumo.dll文件. 复制(ffmpegsumo.dll)并替换node-webkit目录下的ffmpegsumo.dll. 注:由于chromium 版本众多,所以,下载的chrome浏览器的chromium版本要与node-webkit

PHP Warning: Module 'modulename' already loaded in Unknown on line 0 的解决方法

今天无间断服务加载php-fpm时,爆出了一个错误:PHP Warning:  Module 'xhprof' already loaded in Unknown on line 0 <br /> 从英文可以看出PHP的扩展xhprof已经加载了,所以就查看php.ini,搜索xhprof.so发现有两个,删除其中一个,然后无间断服务加载php-fpm就解决了该问题. PHP Warning: Module 'modulename' already loaded in Unknown on l

maven build 产生 Missing artifact org.jboss.logging:jar:3.1.0.GA解决方法

报错来源分析 由于hibernate-entitymanager 需要jboss logging .由于或多或少的原因导致 maven无法下载相关的jar文件. 解决办法: 访问 http://search.maven.org 搜索jboss-logging 点击all, 找到相关的的版本,再点击jar下载文件 下载好的文件放到maven仓库中对应版本的位置,一般是C:\Users\ username \ .m2\repository\org\jboss\logging\jboss-loggin

Eclipse maven工程 Missing artifact com.sun:tools:jar:1.5.0:system 解决方法

今天同事在使用eclipse,引入一个新的maven工程时报错:      Missing artifact com.sun:tools:jar:1.6.0:system   这个问题很奇怪,相同的代码,运行到我本地的Eclipse中时,没有发现问题,说明应该是环境配置的问题.(JDK?maven,Eclipse?) 从网上找了很多资料,发现大家大部分都只给出了解决方案,没有给出出现此问题的原因. 从maven的官网上看:http://maven.apache.org/general.html#

ADT for Eclipse无法升级到23.0的解决方法

最近一次的升级,ADT无法从ADT 22.X升级到23.0.2版本 需要重新卸载,然后重新安装即可 卸载方法: Help->Install new software->点击 页面右下角部分的: already installed ->选择要下载插件(ADT,一般都是以Android开头的)的即可 这应该是Google没有考虑兼容的问题,导致升级出错. 当然,你还可以重新下个Eclipse,然后重新安装ADT for Eclipse ADT for Eclipse无法升级到23.0的解决方

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

一些网友询问说ghost win7系统总是安装不了net2.0怎么办呢?net2.0是什么?ATI显卡的控制中心 就需要在NET2.0的基础上.可是一些用户说win7系统总是安装不了net2.0如何解决呢?针对此问题,下面教程和大家分享win7系统总是安装不了net2.0的解决方法. 解决方法如下: 1.如默认的不具备2.0组件就在控制面板-程序-打开关闭win功能-.NET Framework3.5去掉前面的选择即可. 2.然后下载win7 64位版本的2.0组件安装即可. 以上教程内容就是w

ASP.net MVC3 报错"未找到视图“Index”或其母版视图,或没有视图引擎支持搜索的位置 "的解决方法

注意添加MVC3视图不能直接在View文件下新建视图,而是在控制器的Index 右击添加视图,就会在View下面产生一个Product文件夹(包含Index.cshtml) 就可以解决这个问题. 具体如图: 参考:[ASP.NET MVC 小牛之路]Razor语法 ASP.net MVC3 报错"未找到视图"Index"或其母版视图,或没有视图引擎支持搜索的位置 "的解决方法

IE8及低版本浏览器不支持CSS3 media queries的解决方法

问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口缩小时对应的布局:其他浏览器正常. 定位过程: 其实开始拿到问题时是无从下手,不知所以然,根本就没听说还有media这个CSS属性,就更不知道它的功能了.但是对于解决UI问题,有自己的一套思路,就是首先要思考为什么会错误以及为什么没有错误两个方面,然后针对这两个方面的疑问把html或js或css文件简化再简化,修改再修改,查看UI变化,从而缩小问题范围,最后找出问题根源. 如此我就想为什么其他浏览器界面布局没有问题呢

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

selenium自动化测试过程中,经常会发现某一元素单击,很不稳定,有时候执行了点击没有反映. 以下总结两种解决方法:都是通过js注入的方式去点击. 1.F12查一看,要点击的按钮,或连接,有没有onclick=func();这样调用方法. 如果有的话,可以直接用js调用方法名 driver.execute_script("func();”) 2.找到元素,之后用js注入单击. 有人可能会问,都找到元素了,直接element.click()不就好了. 这样是可以,但是本文的内容是,有一些不稳定.