我正在尝试使用Nightwatch.js对网站进行自动化测试,而我正在使用macOS High Sierra。 因此,按照文档中所述,我开始使用Selenium Standalone Server进行测试。 镀铬测试效果很好,我对此没有任何问题。但是我似乎无法使Firefox测试正常工作,我一直在在线测试和搜索修补程序,但由于我发现的所有解决方案都无法使用,所以我放弃了。 这是我的nightwatch.json配置文件。
{
"src_folders": [
"test"
],
"output_folder": "reports",
"custom_commands_path": "",
"custom_assertions_path": "",
"page_objects_path": "",
"globals_path": "",
"selenium": {
"start_process": true,
"server_path": "./bin/selenium-server-standalone-3.13.0.jar",
"log_path": "",
"port": 4444,
"cli_args": {
"webdriver.chrome.driver": "./bin/chromedriver",
"webdriver.gecko.driver": "./bin/geckodriver",
"webdriver.firefox.profile": "nightwatch"
}
},
"test_settings": {
"default": {
"launch_url": "https://www.google.com",
"selenium_port": 4444,
"selenium_host": "127.0.0.1",
"default_path_prefix": "",
"silent": true,
"screenshots": {
"enabled": false,
"path": ""
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"acceptSslCerts": true,
"marionette": true
}
},
"chrome": {
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions": {
"args": [
"--load-extension=/Users/jackch/Downloads/chrome, --url-base=/wd/hub"
]
}
}
}
}
}
然后,当我在终端中运行nightwatch -e --verbose
时,我得到相同的错误Error retrieving a new session from the selenium server Connection refused! Is selenium server started?
。
我尝试了很多事情:
1)我在默认端口4444上的另一个终端中启动了geckodriver,这是来自geckodriver的日志:
2018-07-23 12:09:03.432 plugin-container[27769:6329668] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7903, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-07-23 12:09:03.559 plugin-container[27769:6329668] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7943, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-07-23 12:09:03.624 plugin-container[27770:6329696] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7b37, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-07-23 12:09:03.713 plugin-container[27770:6329696] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7bcf, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
1532336943850 Marionette INFO Listening on port 52869
2018-07-23 12:09:04.333 plugin-container[27771:6329828] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7d07, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2018-07-23 12:09:04.413 plugin-container[27771:6329828] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x7d83, name = 'com.apple.coredrag'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2)然后我尝试更改geckodriver
的端口,因为我认为它们可能会干扰,因为Selenium和gecko都选择了4444端口,但是没有任何改变。
3)我试图单独启动Selenium服务器,然后将其链接。这意味着我在nightwatch.json中将"start_process"
设置为false。而且我仍然没有设法使它起作用。
这是我运行nightwatch -e --verbose
之后的完整消息:
Starting selenium server... started - PID: 28112
[Test] Test Suite
=====================
Running: Login
INFO Request: POST /session
- data: {"desiredCapabilities":{"browserName":"firefox","javascriptEnabled":true,"acceptSslCerts":true,"platform":"ANY","marionette":true,"name":"Test"}}
- headers: {"Content-Type":"application/json; charset=utf-8","Content-Length":145}
INFO Response 200 POST /session (1721ms) { value:
{ sessionId: '187e2af1-54a1-224a-9b8d-d4ff9f3913c7',
capabilities:
{ acceptInsecureCerts: false,
browserName: 'firefox',
browserVersion: '61.0.1',
'moz:accessibilityChecks': false,
'moz:headless': false,
'moz:processID': 28131,
'moz:profile': '/var/folders/vw/j4dsztz17sj_vtk500lv09r00000gn/T/rust_mozprofile.GRCHbtKdy2zm',
'moz:useNonSpecCompliantPointerOrigin': false,
'moz:webdriverClick': true,
pageLoadStrategy: 'normal',
platformName: 'darwin',
platformVersion: '17.7.0',
rotatable: false,
timeouts: { implicit: 0, pageLoad: 300000, script: 30000 } } } }
Error retrieving a new session from the selenium server
Connection refused! Is selenium server started?
{ value:
{ sessionId: '187e2af1-54a1-224a-9b8d-d4ff9f3913c7',
capabilities:
{ acceptInsecureCerts: false,
browserName: 'firefox',
browserVersion: '61.0.1',
'moz:accessibilityChecks': false,
'moz:headless': false,
'moz:processID': 28131,
'moz:profile': '/var/folders/vw/j4dsztz17sj_vtk500lv09r00000gn/T/rust_mozprofile.GRCHbtKdy2zm',
'moz:useNonSpecCompliantPointerOrigin': false,
'moz:webdriverClick': true,
pageLoadStrategy: 'normal',
platformName: 'darwin',
platformVersion: '17.7.0',
rotatable: false,
timeouts: [Object] } } }
谢谢您能带来的帮助。
答案 0 :(得分:1)
我在firefox,safari,chrome的mac os high sierra上运行守夜人。而在Windows歌剧上,IE。 我的配置:
module.exports = {
"src_folders": ["tests"],
"output_folder": "reports",
// "live_output" : true,
// "parallel_process_delay" : 1500,
"custom_commands_path": "commands",
"custom_assertions_path": "assertions",
"page_objects_path": "",
"globals_path": "",
"selenium": {
"start_process": true,
"server_path": "./node_modules/nightwatch/lib/sel-serv.jar",
"log_path": "selenium_logs",
"port": 4444,
"cli_args": {
"webdriver.chrome.driver": "./node_modules/.bin/chromedriver",
"webdriver.gecko.driver": "./node_modules/.bin/geckodriver",
"webdriver.edge.driver": "./node_modules/.bin/edgedriver",
"webdriver.ie.driver": "drivers/IEDriverServer.exe",
"webdriver.opera.driver": "drivers/operadriver.exe",
"webdriver.safari.driver": "/usr/bin/safaridriver"
}
},
"test_settings": {
"default": {
"selenium_port": 4444,
"selenium_host": "localhost",
"default_path_prefix": "/wd/hub",
"silent": true,
"screenshots": {
"enabled": true,
"on_failure": true,
"on_error": true,
"path": "tmp_screenshots"
}
},
"firefox": {
"desiredCapabilities": {
"browserName": "firefox",
"marionette": true,
"acceptSslCerts": true,
"javascriptEnabled": true
},
"globals": {
"type": "firefox",
"user": "me1",
"pass": "test"
}
},
"chrome": {
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions": {
"args": [
"disable-web-security",
"use-fake-device-for-media-stream",
"use-fake-ui-for-media-stream"
]
},
"acceptSslCerts": true,
"javascriptEnabled": true
},
"globals": {
"type": "chrome",
"user": "me1",
"pass": "test"
}
},
"opera": {
"desiredCapabilities": {
"browserName": "opera",
"operaOptions": {
"binary": "C://Program Files//Opera//53.0.2907.68//opera.exe"
},
"acceptSslCerts": true,
"javascriptEnabled": true
},
"globals": {
"type": "opera",
"user": "me4",
"pass": "test"
}
},
"ie": {
"desiredCapabilities": {
"browserName": "internet explorer",
"version": 11,
"allowBlockedContent": true,
"javascriptEnabled": true,
"acceptSslCerts": true,
"ignoreProtectedModeSettings": true
},
"globals": {
"type": "ie",
"user": "me3",
"pass": "test"
}
},
"safari": {
"desiredCapabilities": {
"browserName": "safari",
"javascriptEnabled": true,
"acceptSslCerts": true
},
"globals": {
"type": "safari",
"user": "me3",
"pass": "test"
}
}
},
"test_workers": {
"enabled": true,
"workers": "auto"
}
};