量角器 - 运行Protractor时出现"Runtime.executionContextCreated有无效'上下文"错误

Bal*_* .Y 31 angularjs protractor

当我运行量角器时,我得到以下错误.以下是我的webstorm控制台中显示的错误.

"C:\ Program Files(x86)\ JetBrains\WebStorm 2016.2\bin\runnerw.exe""C:\ Program Files \nodejs \node.exe"c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor\built\cli.js C:\ Users\x216526\workspace_Protractor\SWA_Protractor\conf.js [17:59:58]我/直接 - 直接使用ChromeDriver ... [17:59:58] I/launcher - 运行1 WebDriver的实例[18:00:01] E/launcher - 会话未创建未知错误的异常:Runtime.executionContextCreated具有无效的'context':{"auxData":{"frameId":"9784.1","isDefault":true },"id":1,"name":"","origin":"://"}(会话信息:chrome = 54.0.2824.0)(驱动程序信息:chromedriver = 2.22.397933(1cab651507b88dec79b2b2a22d1943c01833cc1b),platform = Windows NT 6.1.7601 SP1 x86_64)[18:00:01] E/launcher - SessionNotCreatedError:会话未创建未知错误的异常:Runtime.executionContextCreated具有无效的'context':{"auxData":{"frameId":"9784.1 ","isDefault":true},"id":1,"name":"","origin":"://"}(会话信息:chrome = 54.0.2824.0)(驱动程序信息:在WebDriverError上的chromedriver = 2.22.397933(1cab651507b88dec79b2b2a22d1943c01833cc1b),platform = Windows NT 6.1.7601 SP1 x86_64)(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\error.js :26:26)在Object.checkLegacyResponse(c:\ Users)的SessionNotCreatedError(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\error.js:307:26)\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\error.js:639:15)at parseHttpResponse(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\http\index.js:538:13)在ManagedPromise的c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\http\index.js:472:11在TaskQueue.execute_(c:\ Users\x216526\AppData \).invokeCallback_(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\promise.js:1379:14)漫游\故宫\node_mo dules\protractor \node_modules\selenium-webdriver\lib\promise.js:2913:14)在TaskQueue.executeNext_(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\promise.js:2896:21)c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\lib\promise.js:2820:25 at c:\ Users\x216526\AppData \漫游\npm \node_modules\protractor \node_modules\selenium-webdriver\lib\promise.js:639:7来自:任务:Function.createSession中的WebDriver.createSession()(c:\ Users\x216526\AppData\Roaming \npm驱动程序中的\node_modules\protractor \node_modules\selenium-webdriver\lib\webdriver.js:329:24)(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\selenium-webdriver\chrome.js :778:38)在Runner.createBrowser(c:\ Users\x216526)的Direct.getNewDriver(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor\built\driverProviders\direct.js:68:26)\AppData\Roaming \npm \node_modules\protractor\built\runner.js:187:43)at c:\ Us ers\x216526\AppData\Roaming \npm \node_modules\protractor\built\runner.js:261:30 at _fulfilled(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\q\q.js :834:54)在Promise.promise.promiseDispatch的self.promiseDispatch.done(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\q\q.js:863:30)中(c:\Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\q\q.js:796:13)at c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\q\q .js:556:49 at runSingle(c:\ Users\x216526\AppData\Roaming \npm \node_modules\protractor \node_modules\q\q.js:137:13)[18:00:01] E/launcher - " process.on('uncaughtException'"错误,请参阅启动程序[18:00:01] E/launcher - 已退出并显示错误代码199已完成退出代码199

我的配置js如下所示:

     exports.config = { 
          directConnect: true, // Capabilities to be passed
          //to the webdriver instance. 
         capabilities: { 'browserName': 'chrome', },
         framework: 'jasmine2',
         specs: ['./src/sli_sanitytests/San1_Check_
                        Sli_Homepage_is_Accessible_spec.js',
                 './src/sli_sanitytests/San2_
                  Click_createButton_to_Open_Sli_CreateForm_page_spec.js',
                 './src/sli_sanitytests/San3_
                  Create_Sli_reference_spec.js' ], 
               suites: { 
                         smoke: ['./smoke/!*.spec.js'],
                         regression:['./regression/!*.spec.js'],
                         functional: ['./functional/!*.spec.js'],
                         all: ['./!*!/!*.spec.js'],
                         selected:['./functional/addcustomer.spec.js',
                                    './regression/openaccount.spec.js'],
                         },
                       // Options to be passed to Jasmine
                  jasmineNodeOpts: {
                 //onComplete will be called just before the driver quits.                                
                  onComplete: null, 
                 // If true, display spec names. 
                 isVerbose: true, // If true,print colors to the terminal. 
                 showColors: true, // If true, include stack traces in       
                                   //failures. 
                 includeStackTrace: true, // Default time to wait in ms  
                                         //before a test fails.  
                 defaultTimeoutInterval: 80000 
                             },
                //enter code here 
               onPrepare:function() { 
                   browser.ignoreSynchronization = true;
                   browser.driver.manage().window().maximize(); 
               },
             }
Run Code Online (Sandbox Code Playgroud)

Sea*_*ean 40

2016-10-13:ChromeDriver v2.24已发布,支持Chrome v52-54.(谢谢@Anton)


2016-08-16:最近对Chrome Dev频道的更新之一引入了一个阻止ChromeDriver正常启动的错误.刚刚解决了同样的问题,我建议您备份数据并恢复Chrome的Beta或Stable发布渠道.有关安全切换的详细信息,请参阅Chrome发布渠道.


或者,切换到DevD版ChromeDriver 也应该解决问题.从chromedriver项目的封闭问题:

Chrome开发者频道v54中有一些Devtool更改,目前Chromedriver stable v2.23不支持.您可能想要使用具有修复程序的开发版Chromedriver.它可以从下载chromedriver…/continuous/….zip

查看完整链接的问题.


Jle*_*ner 14

如果最新的量角器没有最新的chromedriver,那么使用webdriver-manager更新它,请按照以下步骤操作

在文件config.json中输入最新的chromedriver版本此文件位于path / node_modules/protractor/node_modules/webdriver-manager/built下

可选(并在文件'chrome_driver.js'中将'mac32'更改为'mac64',它出现在path / webdriver-manager/built/lib/binaries下)

webdriver-manager update在控制台中运行.

提示:要获取'webdriver-manager'文件夹的路径,请在命令后观察控制台webdriver-manager update


小智 6

由于我遇到了同样的问题并发现了这个问题,我想补充一点上下文:它确实是一个'旧的'chrome驱动程序(在我的情况下是2.22)和'更新'的chrome版本之间的版本问题(54在我的情况下)像肖恩回答.

但是,不需要手动调整配置文件或下载.

而是跑步

npm update protractor -g
Run Code Online (Sandbox Code Playgroud)

然后全局更新量角器

webdriver-manager update
Run Code Online (Sandbox Code Playgroud)

更新chrome驱动程序.在撰写本文时,较新的chrome驱动程序v2.25尚未包含在量角器包中(您将获得v2.24),但它适用于Chrome 54.在撰写本文时,Protractor是v4.09.同样的技巧也适用于未来的版本!


Bal*_* .Y 0

首先卸载你的chrome浏览器并重新安装。就是这样,量角器不会抛出任何此类错误。

我什至不知道为什么会发生这种情况,以及出于什么原因看起来有点奇怪,但唯一的解决方案是卸载 chrome 浏览器并重新安装。

npm 卸载 webdriver-manager -g npm 安装 webdriver-manager -g