[iOS] SendKeys() to GR and RU password input field does not insert all characters

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

  1. try el.setValue(“text”) instead
  2. 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:

Because not many people like to write the documentation. Feel free to enhance it. Any help is always highly appreciated.