SMP*_*MPH 10 selenium-chromedriver selenium-webdriver typescript protractor
尝试针对chrome运行Protractor测试时,我得到以下错误.
我的承诺
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',
Run Code Online (Sandbox Code Playgroud)
错误:
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)
Run Code Online (Sandbox Code Playgroud)
conf.ts
multiCapabilities: [
{
browserName: 'chrome',
chromeOptions: {
args: ['--start-maximized']
},
}],
Run Code Online (Sandbox Code Playgroud)
网上的大部分讨论都是围绕版本进行的.我目前正在使用最新版本
有什么线索吗?
干杯
Sud*_*raj 13
您可以通过更改Protractor的config.json文件来更改webdriver-manager下载的chromedriver的版本...
从您发布的错误中,量角器未使用最新的chrome驱动程序版本.在堆栈跟踪中,它显示的是Chrome驱动程序版本2.21.
我还没有足够的代表在Sudharsan的回答下发表评论,但是他告诉你要修改的配置文件的位置实际上是
node_modules/protractor/node_modules/webdriver-manager/config.json
Run Code Online (Sandbox Code Playgroud)
这不是量角器tsconfig,而是config.json要修改的webdriver-manager .
话虽如此,我之前遇到过这个问题并采取了不同的方法来解决它.如果您只需要安装一次,Sudharsan提供的解决方案就可以使用.我们的构建在TFS中运行,它清理构建代理工作目录并在每个构建上提供一个新的repo.更改webdriver配置在这种情况下不起作用,因为我们npm install在每次构建之前都做了所有事情.在这种情况下,它总是会恢复到较旧版本的chromedriver.
我所做的是将chromedriver添加到我的devDependencies中package.json然后我删除了webdriver-manager安装的chromedriver版本,并将chromedriver的更新版本移动到正确的位置并使用gulp任务.所以在package.json中我将它列在devDependencies下:
"chromedriver": "~2.24.1"
Run Code Online (Sandbox Code Playgroud)
然后我有一个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']);
Run Code Online (Sandbox Code Playgroud)
并且因为量角器仍然会寻找在运行时安装的旧版chromedriver,webdriver-manager update你必须告诉它在哪里寻找chromedriver.exe所以将它添加到你的量角器conf.js它应该开始工作.
chromeDriver: "../node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver.exe",
Run Code Online (Sandbox Code Playgroud)
有点愚蠢,我们必须经历所有这些麻烦才能让它发挥作用但是chromedriver 2.22似乎不能与Chrome 53+一起使用.至少不符合我的经验.
TL; DR
如果您只需安装一次使用Sudharsan的解决方案(给定您修改正确的配置),它就会更容易.如果你在我的情况下,将不得不连续安装量角器尝试我的解决方案.它对我来说效果很好,因此我没有遇到过这个错误.
| 归档时间: |
|
| 查看次数: |
30543 次 |
| 最近记录: |