webdriverio: setValue, addValue doesn't work in webview on android mobile devices

Environment (please complete the following information):

  • WebdriverIO version: 5.4.5
  • Mode: WDIO Testrunner
  • If WDIO Testrunner, running sync/async: sync
  • Appium: 1.10.1
  • Browser name and version: mobile chrome 71, chrome driver 44
  • Platform name and version: android 9
  • Additional wdio packages used (if applicable):
{
    "@types/mocha": "^5.2.5",
    "@types/node": "^10.12.18",
    "@wdio/allure-reporter": "^5.4.4",
    "@wdio/cli": "^5.4.5",
    "@wdio/dot-reporter": "^5.4.3",
    "@wdio/local-runner": "^5.4.3",
    "@wdio/mocha-framework": "^5.4.3",
    "@wdio/sync": "^5.4.3",
    "ts-node": "^8.0.1",
    "tsconfig-paths": "^3.7.0",
    "typescript": "^3.2.4"
  }

Config of WebdriverIO capabilities:

{
    maxInstances: 1,
    "appium:platformName": "Android",
    "appium:deviceName": "Pixel 2",
    "appium:browserName": 'chrome',
    "appium:chromeOptions": {
      args: ['--no-first-run'],
    },
    "appium:newCommandTimeout": 240
  }

note that I’m using prefixes appium:

Describe the bug add /set value throws

/wd/hub/session/a8fb82ff-bd82-4b90-87fb-df81914b27cd/element/0.7572212386769221-1/value has failed

unknown error: 'value' must be a list

To Reproduce Run test on Android device in mobile chrome or any webview

$("input").setValue("qwe")
$("input").addValue("asd")

Expected behavior add / set value should work

Log

/wd/hub/session/a8fb82ff-bd82-4b90-87fb-df81914b27cd/element/0.7572212386769221-1/value has failed

unknown error: 'value' must be a list

Additional context instead of using jsonwp command

{
        "name": "value",
        "type": "string[]",
      }

we are using webdriver command

{
        "name": "text",
        "type": "string"
      }

I’ve tried to force using jsonwp setvalue and addvalue commands and succeeded.

Maybe problem is because of isW3c is detected incorrectly?

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 37 (34 by maintainers)

Most upvoted comments

@christian-bromann I looked for the Appium issue that describes this problem but couldn’t. But yes, it is something Appium can/should fix. Since Appium is the proxy between the client and chromedriver, it’s Appium’s job to ensure the proxy is protocol-aware.