webdriverio: WebdriverIO6 unable to execute any scripts on Chromium Edge 83

Environment (please complete the following information):

  • **WebdriverIO version: 6
  • **Mode: selenium-standalone
  • If WDIO Testrunner, running sync/async: sync
  • Node.js version: v12.16.2
  • NPM version: 6.14.4]
  • Browser name and version: Chromium Edge 83
  • Platform name and version: Windows 10
  • Additional wdio packages used (if applicable):@wdio/selenium-standalone service

Config of WebdriverIO An example of how you configured WebdriverIO config

const defaultTimeoutInterval = process.env.DEBUG ? 60 * 60 * 500 : 1200000;
const { removeSync } = require("fs-extra");
const { join } = require("path");
const cucumberJson = require("wdio-cucumberjs-json-reporter").default;

exports.config = {
  // WebdriverIO allows it to run your tests in arbitrary locations (e.g. locally or
  // on a remote machine).
  runner: "local",
  // Define which test specs should run.
  // specs: [
  //     './test/specs/**/*.feature'
  // ],
  // Patterns to exclude.
  exclude: [
    // 'path/to/excluded/files'
  ],

  // Define your capabilities here.
  maxInstances: 8,
  capabilities: [
    {
      maxInstances: 7,
      browserName: "MicrosoftEdge",
      "cjson:metadata": {
        device: "Windows Desktop",
        platform: {
          name: "Windows",
          version: "10",
        },
      },
      specs: [
        "./test/specs/chrome_features/**/*.feature",
        "./test/specs/common_features/**/*.feature",
      ],
    },
  ],

  // Level of logging verbosity: trace | debug | info | warn | error | silent
  sync: true,
  // debug: true,
  // execArgv: ["--inspect-brk=127.0.0.1:5859"],
  logLevel: "error",
  coloredLogs: true, // Enables colors for log output.
  screenshotPath: "./test/reports/errorShots/", // Saves a screenshot to a given path if a command fails.

  // If you only want to run your tests until a specific amount of tests have failed use
  // bail (default is 0 - don't bail, run all tests).
  bail: 0,

  // Set a base URL
  baseUrl: "<url>",

  // Default timeout for all waitFor* commands.
  waitforTimeout: 150000,
  connectionRetryTimeout: 150000,
  connectionRetryCount: 3,

  reporters: [
    "spec",
    [
      "junit",
      {
        outputDir: "./test/reports/junit-results/",
        outputFileFormat: function (opts) {
          return `results-${opts.cid}.${opts.capabilities}.xml`;
        },
      },
    ],
    [
      "allure",
      {
        outputDir: "./test/reports/allure-results/",
        disableWebdriverStepsReporting: true,
        disableWebdriverScreenshotsReporting: false,
      },
    ],
    [
      "cucumberjs-json",
      {
        jsonFolder: "./test/reports/cucumber-results/",
      },
    ],
  ],

  // Test runner services
  services: [
    "selenium-standalone",
    [
      "image-comparison",
      {
        baselineFolder: join(process.cwd(), "./screenshots/baselines/"),
        formatImageName: "{tag}",
        screenshotPath: join(process.cwd(), "screenshots/"),
        savePerInstance: true,
        autoSaveBaseline: true,
        blockOutStatusBar: true,
        blockOutToolBar: true,
        //debug: false,
        disableCSSAnimation: false,
        fullPageScrollTimeout: 2000,
        hideScrollBars: true,
        clearRuntimeFolder: false,
        returnAllCompareData: true,
        ignoreAntialiasing: true,
        //scaleImagesToSameSize:true,
        //rawMisMatchPercentage:true,
        //saveAboveTolerance: 10,
        //misMatchPercentage: 0.50
      },
    ],
  ],

  // Framework you want to run your specs with.
  framework: "cucumber",

  cucumberOpts: {
    requireModule: ["@babel/register"],
    require: ["./test/steps/*.steps.js"],
    backtrace: true,
    compiler: [],
    dryRun: false,
    failFast: false,
    format: ["pretty"],
    colors: true,
    snippets: true,
    source: true,
    profile: [],
    strict: false,
    tagsInTitle: false,
    tagExpression: "not @Pending",
    timeout: defaultTimeoutInterval,
    ignoreUndefinedDefinitions: true,
    failAmbiguousDefinitions: true,
  },

  // Hooks
  onPrepare: function (config, capabilities) {
    removeSync("./test/reports/cucumber-results");
    removeSync("./test/reports/allure-results");
    removeSync("./test/reports/junit-results");
    removeSync("./screenshots");
  },

  beforeSession: function (config, capabilities, specs) {
    require("@babel/register");
  },

  before: function (capabilities, specs) {
    const chai = require("chai");

    global.expect = chai.expect;
    global.assert = chai.assert;
    global.should = chai.should();

    global.reporter = require("wdio-cucumberjs-json-reporter").cucumberJson;
  },

  afterStep(uri, feature, result) {
    if (!result.passed)
      cucumberJson.attach(browser.takeScreenshot(), "image/png");
  },

  onComplete(exitCode, config, capabilities, results) {
    const report = require("multiple-cucumber-html-reporter");
    report.generate({
      jsonDir: "./test/reports/cucumber-results/",
      reportPath: "./cucumber-report/",
      openReportInBrowser: false,
      pageTitle: "Visual & Functional Tests",
      pageFooter:
        "<div><p> &nbsp &nbsp &nbsp A report for visual & functional tests</p></div>",
      displayDuration: true,
      //durationInMS: true,
      reportName: "Visual & Functional Test",
    });
  },
};

Describe the bug When i use Edge in the capabilities, and execute the scripts the browser instance gets launched but no actions happen after that. Even the application url is not opened. I am using WDIO6 and Chromium Edge 83

To Reproduce Steps to reproduce the behavior: When i use Edge in the capabilities, and execute the scripts the browser instance gets launched but no actions happen after that. Even the application url is not opened. I am using WDIO6 and Chromium Edge 83 I execute the npm script “npm run test”

Expected behavior The browser should open the application url and execute the scripts.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 20 (12 by maintainers)

Most upvoted comments

Is it not a WDIO issue ?

Unlikely. WebdriverIO relies on vvo/selenium-standalone to download and start the right driver.

@snackycracky you should at least get some logs from WebdriverIO from the stdout.