-
-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Hello! I try to use modheader in wdio with chrome but I can't install plugin. I use instruction and examples but it doesn't help me. I see
Loading...
If you are still seeing this message after a few seconds, that means ModHeader has not been installed correctly. Please refer to ModHeader Selenium WebDriver doc on how to setup ModHeader for WebDriver correctly.
my wdio.conf.js
const merge = require('deepmerge');
const dotenv = require('dotenv');
const getUsersFile = require('./support/getUsersFile');
const allureReporter = require('@wdio/allure-reporter').default;
const allure = require('allure-commandline');
const chromeModheader = require('chrome-modheader');
dotenv.config();
const drivers = {
chrome: { version: '110.0.5481.77'}};
// Без этого упадет с сертификатом
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
const baseUrl =
process.env.APP_HOST || process.env.CUSTOM_HOSTNAME || 'https://help.tst.ru';
let specs = ['./test/tests/cabinet-end-to-end/.js', './test/tests/cabinet-mock/.js'];
let localReporter;
if (process.env.ALLURE === 'true') {
localReporter = [
'allure',
{
outputDir: 'allure-results',
disableWebdriverStepsReporting: true
}
];
} else {
localReporter = 'spec';
}
const dockerOptions = process.env.IS_DOCKER ? ['--disable-dev-shm-usage', '--no-sandbox'] : [];
const browsers = {
grid: {
logLevel: 'error',
hostname: 'test.ru',
path: '/wd/v1/quotas/test',
port: 80,
headers: {Authorization: OAuth ${process.env.SURFWAX_TOKEN}},
capabilities: [
{
maxInstances: 15,
browserName: 'chrome',
browserVersion: '96.0',
'goog:chromeOptions': {
extensions: [chromeModheader.getEncodedExtension()],
args: [
'--disable-gpu',
'--lang=ru',
'--window-size=1920,1080',
'--disable-infobars',
'--disable-web-security',
'--disable-popup-blocking',
'--deny-permission-prompts',
...dockerOptions
],
prefs: {
'profile.default_content_setting_values.geolocation': 2
}
},
'selenoid:options': {
env: ['LANG=ru_RU.UTF-8', 'LANGUAGE=ru:en', 'LC_ALL=ru_RU.UTF-8'],
enableVNC: true,
enableVideo: true
},
acceptInsecureCerts: true,
specs: specs
}
],
reporters: [
[
'allure',
{
outputDir: 'allure-results',
disableWebdriverStepsReporting: true
}
]
],
specFileRetries: 1,
specFileRetriesDelay: 0,
specFileRetriesDeferred: true
},
local: {
runner: 'local',
reporters: [localReporter],
logLevel: 'debug',
capabilities: [
{
maxInstances: 1,
browserName: 'chrome',
browserVersion: '96.0',
'goog:chromeOptions': {
extensions: [chromeModheader.getEncodedExtension()],
args: [
'--disable-gpu',
'--disable-infobars',
'--lang=ru',
'--window-size=1920,1080',
'--deny-permission-prompts',
],
prefs: {
'profile.default_content_setting_values.geolocation': 2
}
},
acceptInsecureCerts: true,
specs: [],
}
],
}
};
const config = {
async onPrepare() {
await getUsersFile('./users.json');
},
exclude: [],
maxInstances: 20,
bail: 0,
baseUrl: baseUrl,
waitforTimeout: 10000,
connectionRetryTimeout: 150000,
connectionRetryCount: 3,
services: [
['selenium-standalone', { logPath: 'logs', installArgs: { drivers }, args: { drivers } }],
[
'image-comparison',
{
baselineFolder: './screenshots/baseline',
formatImageName: '{tag}',
screenshotPath: './screenshots/',
autoSaveBaseline: true,
returnAllCompareData: true,
logLevel: 'silent'
}
]
],
framework: 'mocha',
mochaOpts: {
ui: 'bdd',
timeout: 240000
},
afterTest: async function (test, context, {error, result, duration, passed, retries}) {
await browser.takeScreenshot();
await browser.mockRestoreAll();
},
onComplete: function () {
if (process.env.ALLURE === 'true') {
const reportError = new Error('Could not generate Allure report');
const generation = allure(['generate', 'allure-results', '--clean']);
return new Promise((resolve, reject) => {
const generationTimeout = setTimeout(() => reject(reportError), 5000);
generation.on('exit', function (exitCode) {
clearTimeout(generationTimeout);
if (exitCode !== 0) {
return reject(reportError);
}
console.log('Allure report successfully generated');
resolve();
});
});
}
}
};
exports.config = merge.all([config, browsers[process.env.RUNNER || 'local']]);