Skip to content

Modheader doesn't work webdriver.io #47

@dashafedoseeva

Description

@dashafedoseeva

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']]);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions