我在我的应用程序中使用Nightwatch和Selenium-standalone进行集成测试。
集成测试在我的本地计算机上运行良好,直到昨天,因为我的Chrome浏览器已更新到54.0 +版本。
我已重新配置"安装"并且"开始" nightwatch集成测试的配置脚本,以避免消息"无法创建会话XXXXXXX" (我不记得确切的信息)。
但是当我启动测试时,打开了一个镀铬窗口。它转到请求的测试页面,尝试检查是否存在带有css类的html,但没有任何反应。它保持不动,直到我手动关闭镀铬窗口。关闭窗口后,控制台/终端显示错误,说明测试等待css类存在的元素但是发生了超时......
看起来测试脚本正在等待Chrome浏览器的任何响应。但浏览器不响应测试脚本。手动关闭chrome窗口后,我收到以下错误消息:"等待元素< .HeaderHome>时超时存在10000毫秒。 - 预期"发现"但得到了:没找到"。
以下是安装和启动Selenium独立服务器然后运行nithwatch测试脚本的脚本:
var selenium = require('selenium-standalone'),
spawn = require('child_process').spawn,
path = require('path'),
args = require('yargs').argv;
var installSelenium = function(done) {
selenium.install({
basePath: __dirname + '/../test/endToEnd/bin',
drivers: {
chrome: {
version: '2.24',
arch: process.arch,
baseURL: 'https://chromedriver.storage.googleapis.com'
}
},
version: '3.0.1',
baseURL: 'http://selenium-release.storage.googleapis.com',
logger: function(message) {
process.stdout.write(message + '\n');
},
progressCb: function(totalLength, progressLength, chunkLength) {
}
}, done);
}
var startSeleniumAndRunNightwatch = function(done) {
selenium.start({
seleniumArgs : ['-role hub'],
basePath: __dirname + '/../test/endToEnd/bin'
}, function(err, child) {
if (err) return console.error('ERROR TRYING TO START SELENIUM: ', err);
process.stdout.write('Selenium started, running nightwatch\n');
var environment = args.env || 'default';
process.stdout.write('Env is: ' + environment + '\n');
var testFile = args.test;
process.stdout.write('testFile is: ' + testFile + '\n');
var options = ['--env', environment];
if (testFile) {
options = options.concat(['--test', testFile]);
}
nightWatchProcess = spawn(
'nightwatch',
options,
{
stdio: 'inherit'
}
);
nightWatchProcess.on('exit', function() {
if (child) {
child.kill();
}
});
}
);
}
installSelenium(startSeleniumAndRunNightwatch);
以下是nightwatch.json文件的相关部分:
{
"src_folders" : ["test/endToEnd/src/tests/user", "test/endToEnd/src/tests/provider"],
"output_folder" : "test/endToEnd/reports",
"custom_commands_path" : "",
"custom_assertions_path" : "",
"page_objects_path" : "test/endToEnd/src/pageObjects",
"globals_path" : "",
"selenium" : {
"start_process" : false,
"host" : "hub.browserstack.com",
"port" : 80
},
"test_settings" : {
"local": {
"launch_url" : "127.0.0.1",
"selenium_port" : 4444,
"selenium_host" : "127.0.0.1",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : ""
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"default": {
"launch_url" : "http://hub.browserstack.com",
"selenium_port" : 80,
"selenium_host" : "hub.browserstack.com",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : ""
},
"desiredCapabilities": {
"browserName": "chrome",
"browser_version" : "54.0",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
问我是否需要更高的精确度。 谢谢您的帮助。 ;)