Hi,
long time since I’ve been active in this forum.
This time I have a question regarding the password input field that is the same for all markets, but on RU and GR, sendKeys() or writeToActiveInput() does not enter all characters that I send.
I tried using:
driver.switchTo().activeElement().sendKeys(text);
and
element.sendKeys(text);
Sometimes all character are insterted, sometimes random number of character is missing and I do not know which ones, because they are censored because of password.
Does anyone have any idea why and how I could fix that?
I’m using iOS native app, XCUITest, latest Appium version and Java client.
Ofcourse, I forgot to add Appium logs - you can see, that the whole password is being sent:
2020-03-18 21:02:14:610 - [HTTP] --> POST /wd/hub/session/3d9dbdfd-3ca5-4370-9414- 78513284a20b/element/24030000-0000-0000-0308-000000000000/value
2020-03-18 21:02:14:610 - [HTTP] {"id":"24030000-0000-0000-0308-000000000000","value":["MobileAuth!01"]}
2020-03-18 21:02:14:610 - [debug] [MJSONWP (3d9dbdfd)] Calling AppiumDriver.setValue() with args: [["MobileAuth!01"],"24030000-0000-0000-0308-000000000000","3d9dbdfd-3ca5-4370-9414-78513284a20b"]
2020-03-18 21:02:14:611 - [debug] [XCUITest] Executing command 'setValue'
2020-03-18 21:02:14:611 - [debug] [WD Proxy] Matched '/element/24030000-0000-0000-0308-000000000000/value' to command name 'setValue'
2020-03-18 21:02:14:611 - [debug] [Protocol Converter] Added 'text' property "MobileAuth!01" to 'setValue' request body
2020-03-18 21:02:14:611 - [debug] [WD Proxy] Proxying [POST /element/24030000-0000-0000-0308-000000000000/value] to [POST http://localhost:8403/session/636F9699-EA51-40A1-8997-EA718064DF54/element/24030000-0000-0000-0308-000000000000/value] with body: {"value":["M","o","b","i","l","e","A","u","t","h","!","0","1"],"text":"MobileAuth!01"}
2020-03-18 21:03:05:318 - [debug] [WD Proxy] Got response with status 200: {"value":null,"sessionId":"636F9699-EA51-40A1-8997-EA718064DF54"}
2020-03-18 21:03:05:319 - [debug] [MJSONWP (3d9dbdfd)] Responding to client with driver.setValue() result: null
2020-03-18 21:03:05:320 - [HTTP] <-- POST /wd/hub/session/3d9dbdfd-3ca5-4370-9414-78513284a20b/element/24030000-0000-0000-0308-000000000000/value 200 50710 ms - 76
I would try to play with maxTypingFrequency
capability value. Also make sure you use the most recent Appium version
1 Like
In the worst case you could also write the password into the clipboard and paste it into the field
also
- try el.setValue(“text”) instead
- try play with “sendKeyStrategy” capability
strategy to use to type test into a test field.
Simulator default: oneByOne.
Real device default: grouped
oneByOne, grouped or setValue
@mykola-mokhnach, lowering typing speed did the trick. I’m wondering why are so many useful capabilities missing in the documentation.
Thank you both for your help. ![:bowing_man: :bowing_man:](//discuss.appium.io/images/emoji/twitter/bowing_man.png?v=9)
Because not many people like to write the documentation. Feel free to enhance it. Any help is always highly appreciated.