nightwatch
Version:
Easy to use Node.js based end-to-end testing solution for web applications using the W3C WebDriver API.
68 lines (51 loc) • 1.45 kB
JavaScript
const chrome = require('selenium-webdriver/chrome');
const BaseService = require('./base-service.js');
class ChromeServiceBuilder extends BaseService {
static get serviceName() {
return 'ChromeDriver';
}
static get defaultPort() {
return 9515;
}
get npmPackageName() {
return 'chromedriver';
}
get outputFile() {
return this._outputFile + '_chromedriver.log';
}
get serviceName() {
return ChromeServiceBuilder.serviceName;
}
get serviceDownloadUrl() {
return 'https://sites.google.com/chromium.org/driver/downloads';
}
/**
* @param {Capabilities} options
* @returns {Promise<void>}
*/
async createService(options) {
const {server_path} = this.settings.webdriver;
this.service = new chrome.ServiceBuilder(server_path);
let enableVerboseLogging = true;
if (Array.isArray(this.cliArgs) && this.cliArgs.length > 0) {
this.service.addArguments(...this.cliArgs);
for (const arg of this.cliArgs) {
if (arg === '--silent' || arg.startsWith('--log-level=')) {
enableVerboseLogging = false;
break;
}
}
}
if (enableVerboseLogging) {
this.service.enableVerboseLogging();
}
if (process.platform !== 'win32') {
this.service.enableChromeLogging();
}
return super.createService();
}
get requiresDriverBinary() {
return false;
}
}
module.exports = ChromeServiceBuilder;