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)
@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.