Я пытаюсь реализовать тест e2e без головы, используя nightwatch, Cucumber и nightwatch-cucumber (не рекомендуется - после этого, возможно, будет использовать другой e2e, но сейчас я должен заставить его работать) в моем приложении React. Все отлично работает локально, но когда я запускаю безголовый, он либо не загружает следующую страницу, либо не работает css selector. Я сильно думаю, что это первое.
Я вроде как сталкиваюсь с блоком, пытающимся отладить. Любые другие методы отладки будут с благодарностью. Кроме повторного запуска сценария тестирования после изменения файла nightwatch.config и опробования другого селектора CSS, я не знаю, что еще делать.
//test devDependencies
"devDependencies": {
"chai": "^3.5.0",
"cucumber": "^4.0.0",
"cucumber-pretty": "^1.4.0",
"dotenv": "^5.0.1",
"https-proxy-agent": "^2.2.1",
"nightwatch": "^0.9.19",
"nightwatch-cucumber": "^9.1.0",
"selenium-server": "^3.9.1",
"wait-on": "^2.1.0"
}
// nightwatch.config
const seleniumServer = require('selenium-server');
require('dotenv').config({ path: `.env_${process.env.NODE_ENV || `local`}` })
require('nightwatch-cucumber')({
cucumberArgs: [
'--require', 'step-definitions',
'--format', 'node_modules/cucumber-pretty',
'--format', 'json:reports/test-results.json',
'features']
});
// Determines if the local enviornment is local or jenkins
const env = process && process.env && process.env.NODE_ENV || `local`;
console.log(`~!~!~!~! ${process.env.NODE_ENV}`)
module.exports = {
"output_folder": "reports",
"selenium": {
"start_process": true,
"server_path": seleniumServer.path,
"log_path": "",
"port": 9876,
"cli_args": {
"webdriver.chrome.driver": env === `local`
? `./chromedriver`
: `/usr/bin/chromedriver`
}
},
"test_settings": {
// Used as default
"default": {
"selenium_port": 9876,
"selenium_host": "localhost",
"desiredCapabilities": {
"browserName": "chrome",
"acceptSslCerts": true,
"javascriptEnabled": true,
"acceptInsecureCerts": true,
"chromeOptions": {
"args": [
"--headless",
"disable-web-security",
"ignore-certificate-errors",
"no-sandbox",
"disable-gpu"
]
}
}
},
// Used for local chrome browser testing
"local": {
"selenium_port": 9876,
"selenium_host": "localhost",
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptInsecureCerts": true,
"chromeOptions": {
"args": [
"disable-web-security",
"ignore-certificate-errors",
"no-sandbox",
"disable-gpu",
"window-size=1440,900"
]
}
}
},
// Used for PR build pipeline
"build": {
"selenium_port": 9876,
"selenium_host": "localhost",
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptInsecureCerts": true,
"chromeOptions": {
"args": [
"headless",
"disable-web-security",
"ignore-certificate-errors",
"no-sandbox",
"disable-gpu",
"window-size=1440,900"
]
}
}
},
// Used for Regression
"redblu": {
"selenium_port": 8080,
"selenium_host": "bluxpress-sts.clouddqt.capitalone.com",
"desiredCapabilities": {
"browserName" : "chrome",
"recordVideo" : true,
"name" : "aviator-ui-test",
"acceptSslCerts": true,
"acceptInsecureCerts": true,
"javascriptEnabled": true,
"chromeOptions": {
"args": [
"ignore-certificate-errors",
"disable-gpu",
"no-sandbox",
"start-maximized"
]
}
}
}
}
};
У меня есть эта настройка, но когда я запускаю Nightwatch с безголовым, он не работает. Все работает локально, хотя. Разве он не поддерживает макросы в то время?