Skip to content

[🐛 Bug]: chromedriver attempting to connect to appium server in multiremote mode #11012

@DmytroChuchmaiBarges

Description

@DmytroChuchmaiBarges

Have you read the Contributing Guidelines on issues?

WebdriverIO Version

8.15.6

Node.js Version

16.9.0

Mode

Standalone Mode

Which capabilities are you using?

{
    clientApp: {
        capabilities: {
            browserName: "chrome",
            browserVersion:"stable",
            "goog:chromeOptions": {
                args: [
                    "--disable-notifications"
                    , "--disable-setuid-sandbox"
                    , "--no-sandbox"
                    , "--window-size=1536x864"
                    , "--disable-dev-shm-usage"
                    // ,"--headless"
                    , `--arch=${process.arch}`,
                    "--allow-file-access-from-files",
                    "--use-fake-ui-for-media-stream",
                    "--use-fake-device-for-media-stream",
                    `--use-file-for-fake-video-capture=/Users/${os.userInfo().username}/Desktop/output.y4m`
                ],
                "prefs": {
                    "hardware.audio_capture_enabled": true,
                    "hardware.video_capture_enabled": true,
                    "hardware.audio_capture_allowed_urls": ["https://staging.stageserver.co"],
                    "hardware.video_capture_allowed_urls": ["https://staging.stageserver.co"],
                }
            },
        }
    },
    advisorApp: {
        capabilities: {
            platformName: 'Android',
            'appium:deviceName': webConfig.devicesContent[0].deviceName, 'appium:platformVersion': webConfig.devicesContent[0].platformVersion,
            'appium:orientation': 'PORTRAIT',
            'appium:automationName': 'UiAutomator2',
            'appium:appPackage': 'co.myApp.android.staging',
            'appium:appActivity': 'co.myApp.android.splash.SplashActivity',
            'appium:noReset': true,
            'appium:systemPort': 8216,
            'appium:newCommandTimeout': 240,
            'appium:autoGrantPermissions': true
        }
    }
}

What happened?

I have tests that need different multiremote driver interactions: standalone chrome with appium Android or iOS.
When running web browser in standalone mode, it works fine. When running appium test - also everything starts ok.
When running 2 webdriver instances: 1 for browser, 2 - mobile app,
then chromedriver attempting to connect to appiun server.

What is your expected behavior?

When there was selenium standalone service it automatically started selenium server and connected chromedriver to it.
appium service also was started by wdio, both services were running on different ports so did not intercept eachother.

It would be great if the crhomedriver does not attempt to connect to appium server.

How to reproduce the bug.

create any test with this capabilities combination.

clientApp.url('/');
advisorApp.$('someMobileSelector').waitForDisplayed();

Relevant log output

Appium server log

2023-08-25T12:10:08.352Z DEBUG webdriver: request failed due to response error: invalid argument
2023-08-25T12:10:08.352Z WARN webdriver: Request failed with status 400 due to 'automationName' can't be blank; 'platformName' can't be blank
2023-08-25T12:10:08.352Z INFO webdriver: Retrying 3/3
2023-08-25T12:10:08.352Z INFO webdriver: [POST] http://127.0.0.1:4723/session
2023-08-25T12:10:08.352Z INFO webdriver: DATA {
  capabilities: {
    alwaysMatch: {
      browserName: 'chrome',
      browserVersion: 'stable',
      'goog:chromeOptions': [Object]
    },
    firstMatch: [ {} ]
  },
  desiredCapabilities: {
    browserName: 'chrome',
    browserVersion: 'stable',
    'goog:chromeOptions': { args: [Array], prefs: [Object] }
  }
}
2023-08-25T12:10:08.367Z DEBUG webdriver: request failed due to response error: invalid argument
2023-08-25T12:10:08.367Z ERROR webdriver: Request failed with status 400 due to invalid argument: 'automationName' can't be blank; 'platformName' can't be blank
2023-08-25T12:10:08.367Z ERROR webdriver: invalid argument: 'automationName' can't be blank; 'platformName' can't be blank
    at getErrorFromResponseBody (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/utils.js:194:12)
    at NodeJSRequest._request (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/request/index.js:164:23)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async startWebDriverSession (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/utils.js:63:20)
    at async Function.newSession (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/index.js:27:45)
    at async remote (file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:45:22)
    at async file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:98:26
    at async Promise.all (index 0)
    at async multiremote (file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:97:5)
    at async initialiseInstance (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/utils.js:71:21)
    at async Runner._startSession (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:224:29)
    at async Runner._initSession (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:190:25)
    at async Runner.run (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:79:19)
2023-08-25T12:10:08.374Z ERROR @wdio/runner: Error: Failed to create session.
'automationName' can't be blank; 'platformName' can't be blank
    at startWebDriverSession (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/utils.js:68:15)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Function.newSession (file:///Users/myUserName/src/testAutomation/node_modules/webdriver/build/index.js:27:45)
    at async remote (file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:45:22)
    at async file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:98:26
    at async Promise.all (index 0)
    at async multiremote (file:///Users/myUserName/src/testAutomation/node_modules/webdriverio/build/index.js:97:5)
    at async initialiseInstance (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/utils.js:71:21)
    at async Runner._startSession (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:224:29)
    at async Runner._initSession (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:190:25)
    at async Runner.run (file:///Users/myUserName/src/testAutomation/node_modules/@wdio/runner/build/index.js:79:19)

Code of Conduct

  • I agree to follow this project's Code of Conduct

Is there an existing issue for this?

  • I have searched the existing issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug 🐛good first picka reasonable task to start getting familiar with the code basehelp wantedIssues that are free to take by anyone interested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions