protractor - 在 directconnect=true 的情况下使用量角器 - 如何修复 - 此版本的 ChromeDriver 仅支持 Chrome 版本
问题描述
包.json
{
"name": "test1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "npm run webdriver-update && npm run test-protractor",
"test-protractor": "protractor protractor.conf.js",
"webdriver-update": "webdriver-manager update"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"chai": "^4.2.0",
"chai-as-promised": "^7.1.1",
"cucumber": "^6.0.5",
"jasmine-spec-reporter": "^4.2.1",
"protractor": "^5.4.2",
"protractor-cucumber-framework": "^6.2.0",
"rimraf": "^3.0.1"
}
}
量角器.conf.js
const protractor = require('protractor');
// console.log('browser = ', browser);
exports.config = {
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
getPageTimeout: 60000,
allScriptsTimeout: 500000,
specs: ['features/*.feature'],
baseURL: 'http://www.google.com/',
cucumberOpts: {
require: [
'./features/step_definitions/stepDefinitions.js'
],
tags: false,
profile: false,
'no-source': true
},
onPrepare: function() {
// browser.ignoreSynchronization = true;
// browser.manage().window().maximize();
// browser.manage().timeouts().implicitlyWait(5000);
},
capabilities: {
browserName: "chrome",
chromeOptions: {
args: [
'--headless',
'--disaple-gpu',
'--window-size=1920,1080',
'--no-sandbox',
'--disable-dev-shm-usage'
],
prefs: {
download: {
prompt_for_download: false,
extensions_to_open: ''
},
profile: {
default_content_settings: {
popups: 0
}
},
directory_upgrade: true
},
useAutomationExtension: false
}
},
// connec direct to webdriver, instead of local selenium server!
directConnect: true,
ignoreUncaughtException: true,
onComplete: () => {
// Reporter.createHtmlReport();
}
}
错误
未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 80
我可以手动设置 update-config.json 并下载了许多不同的 chromedriver 版本,但我仍然得到同样的错误。例子:
更新配置.json
{"standalone":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar"]},"gecko":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe"]},"chrome":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe","node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe"]}}
错误
E/launcher - 会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 75
这是版本 75,那么到底发生了什么?我没有使用角度。我正在使用directconnect = true,并将所有内容设置为无头。我确实让它在某个时候工作,但丢失了代码并陷入了这个循环。
解决方案
好的,所以我遵循了这个线程的建议: - protractor 2.5.4 E/launcher - 未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 79
我现在使用 chromedriver 版本:78.0.3904.105。
- 节点 node_modules/protractor/bin/webdriver-manager clean
- 节点 node_modules/protractor/bin/webdriver-manager 更新
- 节点 node_modules/protractor/bin/webdriver-manager --versions.chrome=78.0.3904.105
- 确保此版本 - chromedriver_78.0.3904.105 - 在 update-config.json 文件的所有引用中更新。
更新配置.json
{
"standalone":{
"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar",
"all":[
"node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar"
]
},
"gecko":{
"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe",
"all":[
"node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe"
]
},
"chrome":{
"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe",
"all":[
"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe",
"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe"
]
}
}
- 使用选项运行量角器:--no-webdriver-update
"scripts": {
"test": "npm run test-protractor --no-webdriver-update"
},
现在它起作用了!
推荐阅读
- asp.net - 在 mvc 文本更改事件中未调用 jQuery 函数
- android - 在动态按钮android中获取图像路径
- javascript - 循环遍历 2 个数组并将一个数组中的一个值分配给第二个数组的每个匹配对象
- mongodb - Mogodb 聚合从 2 个数组创建输出为 {"key": "value"}
- php - 根据 Woocommerce 中的特定用户角色显示菜单项
- python-3.x - 无法获得漂亮的汤以返回正确的文章标题、链接和 img。帮忙调试?
- javascript - Pannellum clickHandlerFunc
- angular - 未处理的承诺拒绝:[object Object] 没有提供者!; 区:
; 任务:Promise.then;值:错误:[object Object] 没有提供者! - docker - 如何在 Jenkins Pipeline 上构建 Docker 映像,而不更改底层 Jenkins VM 的权限?
- php - htaccess 将规则重写到 Wordpress 页面而不更改 URL