typescript 量角器中未创建chrome会话异常

62o28rlo  于 2023-06-07  发布在  TypeScript
关注(0)|答案(7)|浏览(172)

我得到下面的错误时,尝试运行量角器测试对 chrome .
我的会议

import {Config} from 'protractor'

export let config: Config = {
    framework: 'jasmine',
    // capabilities: { browserName: 'chrome'},
    multiCapabilities: [
        // {browserName: 'firefox'},
        {
            browserName: 'chrome',
            chromeOptions: {
                args: ['--start-maximized']
            },

        }],

    seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    seleniumPort: null,
    seleniumArgs: [],
    specs: [
        './Protractor/Login/*.spec.js',

错误:

Protractor conf.js
[17:19:07] I/hosted - Using the selenium server at http://127.0.0.1:4444/wd/hub
[17:19:07] I/launcher - Running 1 instances of WebDriver
[17:19:09] E/launcher - session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"8800.1","isDefault":true},"id":1,"name":"","origin":"://"}
  (Session info: chrome=54.0.2840.59)
  (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.07 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'MAL000009416062', ip: '192.168.1.4', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_73'
Driver info: org.openqa.selenium.chrome.ChromeDriver
[17:19:09] E/launcher - SessionNotCreatedError: session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"8800.1","isDefault":true},"id":1,"name":"","origin":"://"}
  (Session info: chrome=54.0.2840.59)
  (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.07 seconds
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'MAL000009416062', ip: '192.168.1.4', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_73'
Driver info: org.openqa.selenium.chrome.ChromeDriver
    at WebDriverError (C:\Users\392811\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:27:5)
    at SessionNotCreatedError (C:\Users\392811\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:308:5)

配置ts

multiCapabilities: [

        {
            browserName: 'chrome',
            chromeOptions: {
                args: ['--start-maximized']
            },

        }],

网络上的大部分讨论都围绕着版本。我目前使用的是最新版本
有线索吗?
干杯

afdcj2ne

afdcj2ne1#

您可以通过更改Protractor的config.json文件来更改webdriver-manager下载的chromedriver的版本。
1.编辑量角器的配置文件:node_modules/protractor/config.json
1.将chrome驱动程序版本更改为您需要的任何版本。例如“chromedriver”:“2.24”。
1.运行webdriver-manager更新。
从你发布的错误中,量角器没有使用最新的chrome驱动程序版本。在堆栈跟踪中显示chrome驱动程序版本为2.21

dy2hfwbg

dy2hfwbg2#

我还没有足够的代表在Sudharsan的回答下留下评论,但是他告诉你修改的配置文件的位置实际上是在

node_modules/protractor/node_modules/webdriver-manager/config.json

你要修改的不是量角器tsconfig,而是webdriver-manager config.json
话虽如此,我以前遇到过这个问题,并采取了不同的方法来解决它。Sudharsan提供的解决方案如果您只需要安装一次就可以工作。我们在TFS中运行构建,它清理构建代理的工作目录,并在每次构建时引入一个新的存储库。在这种情况下,更改webdriver配置是不起作用的,因为我们在每次构建之前都要npm install所有的东西。在这种情况下,它总是会恢复到旧版本的chromedriver。
我所做的是将chromedriver添加到package.json中的devDependencies中,然后删除webdriver-manager安装的chromedriver版本,并使用gulp任务将更新后的chromedriver版本移动到正确的位置。因此,在package.json中,我在devDependencies下列出了以下内容:

"chromedriver": "~2.24.1"

然后我有一个gulp任务,它删除并移动文件,如下所示:

var gulp = require('gulp');
var del = require('del');

var chromeDriverFilesToMove = [
    './node_modules/chromedriver/lib/chromedriver/**'
];

var chromeDriverFilesToDelete = [
    './node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver*.exe',
    './node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver*.zip'
];

gulp.task('delete-chromedriver', function() {
    return del(chromeDriverFilesToDelete);
});

gulp.task('move-chromedriver', function() {
    gulp.src(chromeDriverFilesToMove)
        .pipe(gulp.dest('node_modules/protractor/node_modules/webdriver-manager/selenium/'));
});

gulp.task('chromedriver-update', ['delete-chromedriver', 'move-chromedriver']);

而且因为量角器仍然会寻找你运行webdriver-manager update时安装的旧版本的chromedriver,你必须告诉它在哪里寻找chromedriver.exe,所以把它添加到你的量角器conf.js,它应该开始工作了。

chromeDriver: "../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver.exe",

这是一种愚蠢的,我们必须通过所有这些麻烦,让它的工作,但chromedriver 2.22似乎不与Chrome 53+工作。至少不是在我的经验。
TL;DR
如果你只需要安装一次,使用Sudharsan的解决方案(只要你修改正确的配置),它更容易。如果你是在我的情况下,将不得不安装量角器不断尝试我的解决方案。这对我来说很好,从那以后我就再也没有遇到过这个错误。

wz1wpwve

wz1wpwve3#

我只需要:

npm update -g protractor
webdriver-manager update

它再次奏效了。

zvms9eto

zvms9eto4#

Protractor有一个新版本(4.0.10),将使用新版本的webdriver-manager(10.2.6),当调用webdriver-manager update时,它将更新到新的Chromedriver。您需要做的就是在package.json文件中更新Protractor。

"protractor": "^4.0.9" to "protractor": "^4.0.10"

希望这有帮助:)

kse8i1jr

kse8i1jr5#

1.运行以下命令:
1.Projectdirectory:/>webdriver-manager update --versions.chrome=ChromeVersion
1.* 将其替换为“ChromeVersion”Google Chrome浏览器版本。通过导航到“帮助>>关于Google Chrome>>例如:版本76.0.3809.100(Official Build)(64-bit)".*
我希望这对你有用。

qpgpyjmq

qpgpyjmq6#

对我来说,更新chromedriver和protractor-conf.js解决了这个问题。
1.下载适合您的操作系统的最新chromedriver(如果需要,请更改次要版本)从这里:http://chromedriver.storage.googleapis.com/index.html?path=2.24/
1.解压缩到/usr/local/bin/chromedriver文件夹。
1.在protractor-conf.js(应该在应用程序根目录下)中添加一行config.chromeDriver = '/usr/local/bin/chromedriver';

llycmphe

llycmphe7#

在用户目录的webdriver-manager文件夹下有一个package.json文件-将其webdriver-version更改为最新版本。应该可以的
“name”:“webdriver-manager”,“version”:“12.1.8”,

相关问题