Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 18:46
    DudaGod synchronize #7753
  • 17:59

    dependabot[bot] on npm_and_yarn


  • 17:59

    christian-bromann on main

    Bump devtools-protocol from 0.0… (compare)

  • 17:59
    christian-bromann closed #7766
  • 17:57

    dependabot[bot] on npm_and_yarn


  • 17:57
    dependabot[bot] closed #7765
  • 17:57
    dependabot[bot] edited #7765
  • 17:57
    dependabot[bot] commented #7765
  • 17:57
    dependabot[bot] edited #7765
  • 17:57

    dependabot[bot] on npm_and_yarn


  • 17:57
    dependabot[bot] labeled #7766
  • 17:57
    dependabot[bot] opened #7766
  • 17:57

    dependabot[bot] on npm_and_yarn

    Bump devtools-protocol from 0.0… (compare)

  • 17:56

    christian-bromann on main

    Bump jest from 27.3.1 to 27.4.0… (compare)

  • 17:56
    christian-bromann closed #7764
  • 17:56
    dependabot[bot] labeled #7765
  • 17:56
    dependabot[bot] opened #7765
  • 17:56

    dependabot[bot] on npm_and_yarn

    Bump jest-circus from 27.3.1 to… (compare)

  • 17:56
    dependabot[bot] labeled #7764
  • 17:56

    dependabot[bot] on npm_and_yarn

    Bump jest from 27.3.1 to 27.4.0… (compare)

This is failing and I don't understand why

Expect $(Products) to be visible

Expected: "visible"
Received: "not visible"

Christian Bromann
is Products selecting an element <Products />
No- it was supposed to grabbing the text Products
But I think I resolved the issue
Orozbek Askarov
Hi, Configuration for logs('outputDir': 'logs'): in 'logs' folder I'm seeing files like wdio-0-0.log or wdio-0-1.log and it looks like webdriverio creates a log file for each test file. Is there a way to add test file name to the log file name???
Veena Vijayan

Hi, I added takeScreenshot() in config file's afterTest setting. I got a large data value in the onTestEnd() event handler. I tried to convert that value to image. But couldn't. How to generate image file from that value?

afterTest: async function (
    context, {
  ) {
    if (!passed) {
      await browser.takeScreenshot();


import WDIOReporter from '@wdio/reporter';

export default class CustomReporter extends WDIOReporter {
  constructor(options) {
      * make reporter to write to the output stream by default
    options = Object.assign(options, {
      stdout: true

  onTestEnd(test) {
    if (test.state === 'failed') {
      //conversion code
Marijana Rukavina

I get this error: Error: The "from" argument must be of type string. Received undefined. From the stack trace I can see that it is related to cucumber somehow.
This is the stack trace:

2021-04-08T18:29:37.403Z ERROR @wdio/runner: TypeError [ERR_INVALID_ARG_TYPE]: The "from" argument must be of type string. Received undefined
    at validateString (internal/validators.js:120:11)
    at Object.relative (path.js:437:5)
    at getDefinitionLineAndUri (C:\my-project\node_modules\cucumber\lib\support_code_library_builder\build_helpers.js:184:27)
    at buildStepDefinitionConfig (C:\my-project\node_modules\cucumber\lib\support_code_library_builder\build_helpers.js:124:7)
    at SupportCodeLibraryBuilder.defineStep (C:\my-project\node_modules\cucumber\lib\support_code_library_builder\index.js:51:79)
    at Object.<anonymous> (C:\my-project\src\step_definitions\/accountSummary_steps.js:6:1)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Module._compile (C:\my-project\node_modules\pirates\lib\index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Object.newLoader [as .js] (C:\my-project\node_modules\pirates\lib\index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.hookedLoader [as _load] (C:\my-project\node_modules\mockery\mockery.js:111:12)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at C:\my-project\node_modules\@wdio\cucumber-framework\build\index.js:204:13

In my steps.js file I only have:

When(/^I click on My account details link$/, function () {

This is my package.json dependencies:

"dependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/plugin-proposal-export-default-from": "^7.5.2",
    "@babel/preset-env": "^7.4.2",
    "@babel/register": "^7.4.0",
    "@types/cucumber": "^7.0.0",
    "@wdio/cli": "^7.3.1",
    "@wdio/config": "^7.3.1",
    "@wdio/cucumber-framework": "^7.3.1",
    "@wdio/local-runner": "^7.3.1",
    "@wdio/selenium-standalone-service": "^7.3.1",
    "@wdio/spec-reporter": "^7.3.1",
    "@wdio/sync": "^7.3.1",
    "chai": "^4.3.4",
    "cucumber": "^6.0.5",
    "eslint-plugin-wdio": "^7.0.0",
    "file-system": "^2.2.2",
    "mjpeg-consumer": "^2.0.0",
    "node-fetch": "^2.6.1",
    "webdriverio": "^7.3.1",
    "yarn": "^1.22.10"
  "devDependencies": {
    "@babel/core": "^7.4.0",
    "@wdio/allure-reporter": "^7.3.1",
    "@wdio/browserstack-service": "^7.3.1",
    "@wdio/junit-reporter": "^7.3.1",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^26.6.3",
    "eslint": "^7.23.0",
    "eslint-plugin-import": "^2.22.1",
    "forever": "^3.0.4",
    "jest": "^26.6.3",
    "npm-run-all": "^4.1.5"

I don't have clue what could be wrong. Anybody has any idea? Thanks!

1 reply
Is there a simple way to check that browser.url() resolved correctly?
@christian-bromann hey , do we have any equivalent events in WDIO v7 for V4 events "start" & "end" ? . WDIO v7 events "runnerStart" and "runnerEnd" is not fulfilling our custom report logic ?
Hello, I am doing login step in beforeSuite hook, but for some reasons, the login step may fail some times, to make the whole wdio test fail earlier, is there any way to skip all the tests if any error occurs in beforeSuite hook?
Hello, I am trying to execute test script on headless emulator, but it is giving locator not found, whereas same test script run on emulator is able to find locator. And idea, whether I am missing any thing? Or anything need to add in capabilities?
Federico Francia
Hi everybody,
I often get this error: ERROR webdriver: RequestError: read ECONNRESET. it's probably due to the cloud farm,
is there a way to trap it and make the webdriverIO quit gracefully?
Hi can anyone share how to use xpath in appium with webdriverio ?
Christian Bromann
@shoaibAutomationEngineer the same way you use xpath with any other environment
@christian-bromann Thanks
Unable to parse cucumberjs output into json: '%s' /var/lib/jenkins/workspace/ui-smoketests SyntaxError: /var/lib/jenkins/workspace/: Unexpected end of JSON input
Does anybody know how to fix this error? HTML report is not generating and hence getting this error message post build run


We are working on the WDIO-7 upgrade for our mobile framework and we noticed that our perfecto authentication invokes with token in WDIO-5. Now WDIO-7 required user and key for authentication as per the docs [ https://webdriver.io/docs/options/#user ] but its not working as expected when we tried.

Kindly assist

Christian Bromann
@Muralijc I check their docs and it seems they pass in user and password as part of the capabilities which is invalid to the WebDriver spec. I would reach out to them and notify about their platform incompatibility.

Using WDIO V7, Typescript, Cucumber FK.
I've been looking and searching around, gave a call to a friend" for a clue (a developper in the project).
We must have missed something that should be more than obvious...

Question is : how do you access cucumbers World (this.) into the beforeScenario Hook of WDIO ?

Christian Bromann
@pfoucray I recommend to ask the channel rather than individual contributors ;-)
1 reply
We succeded in adding data to cucumber "World" through "beforeStep" with the "context" parameter.
But inside beforeScenario, is there any similar way to achieve that ?
Hey guys, Having some challenge with wdio upgrade from v4 to v7.
our custom report dependent with wdio v4 events "start" & "end" to generate one master report for all runners. WDIO v7 has no more support for "start" and "end" events, so having challenge in generating report for retry logic.
can someone guide me how to handle this or any equivalent for v4 events "start" and "end" in v7 ? Appreciate your support on this , Thanks!
Erwin Heitzman
sounds like you need the onPrepare and onComplete hooks @techyguy78
there you can see all the events you can use
seems like onRunnerStart and onRunnerEnd should do the trick
Eric Saari
Hi all - does the Cucumber test runner no longer support the --dry-run option?
Looks like v5 had it in the docs but then disappeared in v6
Thanks @erwinheitzman! RunnerStart and RunnerEnd generates report at spec file level, for 100 spec file in suite its challenge to get consolidated results
Erwin Heitzman
@techyguy78 I think the idea is that you push the results in an array and then use the sync command to create/push your results
you can use this as a reference
or checkout any of the other reporters
another example, taken from the junit reporter:
    onRunnerEnd (runner: RunnerStats) {
        const xml = this._buildJunitXml(runner)
I should create my own reporter sometime soon so I can explain it well in the future hehe
ah :-) , let me look into this @erwinheitzman Thank you!

hello all,
when running the example wdio project generated through wdio config using selenium-standalone, jasmine framework, and running commands synchronous (making no changes) i get the following warning when each test starts and completes:

DEPRECATION: An asynchronous before/it/after function took a done callback but also returned a promise. This is not supported and will stop working in the future. Either remove the done callback (recommended) or change the function to not return a promise.

npm init and wdio config output: https://paste.gg/p/anonymous/c39026f3328645189ac202818f56102b
npm t output: https://paste.gg/p/anonymous/1d1a08a0a8804b1e9da6ef9437cd09b3

any idea what this is about? is this something i can fix or ignore?

Hi I have a table where I scrollIntoView a cell, but it is sometimes covered by the header nav bar at the top. I know this is probably not the best way to do it but I want to overwrite the scrollIntoView command to use it, check if the element is clickable, if not, press up a few times on the browser to get it into view. My issue is I don't know how to get the element reference inside the function I pass into overwriteCommand in order to check isClickable. The examples I've seen do not have references to the element. How do I do that?
@an-austin-jones have you looked into passing arguments to the scrollIntoView() function? I like to use scrollIntoView({block: "center"}) to vertically center the target element in view
Samavedam Bharadwaj
Unable to load spec files quite likely because they rely on browser object that is not fully initialised. I am getting err
Any idea
Christian Bromann
@bharadwajsamavedam:matrix.org you have to provide the full error message
Marijana Rukavina

Hello, I am using webdriverIO v7 and cucumber to test my application. When running tests in headless mode or non headless mode results in error: java.net.ConnectException: Connection refused: connect Some scenarios pass but in some fail with that error.
This is stack trace:

unknown error: java.net.ConnectException: Connection refused: connect
    at Object.getErrorFromResponseBody (C:\my-project\node_modules\webdriver\build\utils.js:189:12)
    at WebDriverRequest._request (C:\my-project\node_modules\webdriver\build\request.js:168:31)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at Browser.runCommandWithHooks (C:\my-project\node_modules\@wdio\sync\build\wrapCommand.js:105:25)
    at Browser.runCommandWithHooks (C:\my-project\node_modules\@wdio\sync\build\wrapCommand.js:100:24)
    at Browser.url (C:\my-project\node_modules\@wdio\sync\build\wrapCommand.js:67:44)
    at MyPage.openImportPage (C:\my-project\src\pages\/myPage.js:32:17)
    at forEach (C:\my-project\src\helpers\/helpers.js:60:21)
    at Array.forEach (<anonymous>)
    at Helpers.deleteWishLists (C:\my-project\src\helpers\/helpers.js:55:51)
    at World.<anonymous> (C:\my-project\src\step_definitions\/config_steps.js:28:13)
    at World.executeSync (C:\my-project\node_modules\@wdio\sync\build\index.js:38:22)
    at World.executeSync (C:\my-project\node_modules\@wdio\sync\build\index.js:52:38)
    at C:\my-project\node_modules\@wdio\sync\build\index.js:69:68

Any ideas what the issue might be? Thanks!

Hi all, I have a question:
We have a package, that I want to add code coverage. But we don't have any application for the package, we wrote many tests, used WDIO (not unit tests)
I tried to use wdio-coverage-service, but received 0% coverage, also tried to use intanbul as is, but received again 0%.
Could anybody can help me?
Raziel Alron

Hi there, I am trying to send an API via axios.
I am using wdio v7 and sync mode.
I have a class that wraps onto axios to send API calls.
I get undefined when doing this through my axios class wrapper,
but when executing an API call through axios explicitly from the test it works, here is an example of what does work:

it('API call', async () => {
    resp = await browser.call(() => axios(request));
    console.log(resp); //resp is not a promise since I used await

I have a question regarding this code, why without browser.call() this code doesn't work?
this is the example code that does NOT work:

it('API call', async () => {
    resp = await browser.call(() => axiosWrapperFunction(request)); //this function calls axios inside her

so since this didn't really work, I thought maybe I need to add the browser.call() only on the API call itself, so I added it to the axios call inside the function wrapper and it didn't work.
can someone help with this and why do I need this browser.call() why can't I just use async/await?