SendKeys issue after updating to Appium 2.0 & appium Java client 8.0.0

Hi Guys ,
After updating to appium 2.0
SendKeys() is not working properly on iOS
For example : if I need to simply enter the text [email protected] so what SendKeys is doing is entering : [email protected], enter any string it always skips second character and pushed it to the last , I Tried many things, tried to use clear() before , click() , Webdriver Wait, Thread.sleep as well , but nothing worked , I am not sure if it’s entering string too fast ? Or something do with Java compiler ? Any help would be appreciated , thanks in advance.

Look closer to ‘interKeyDelay’ and ‘sendKeyStrategy’ capabilities.

https://appium.io/docs/en/writing-running-appium/caps/#ios-only

Thanks, @Aleksei - Let me give it a try with this capability, but interestingly there is another field on the same page that works fine all the time.

@iOSXCUITFindBy(id = “signin_txtUsername”) ----> This element has the issue
public WebElement txtUsername;

This works fine :
@iOSXCUITFindBy(xpath = “(//XCUIElementTypeOther[@name=“SIT Password”])[3]/XCUIElementTypeOther/XCUIElementTypeSecureTextField”)
public WebElement txtPassword;

Try also ‘setValue(“your text”)’

@Aleksei: There is no setValue() method as it comes from MobileElement class & we moved from MobileElement to WebElement now in Appium 2.0, I have added this capability capabilities.put(“sendKeyStrategy”,“setValue”); but still its not working.

Thanks, @Aleksei - I tried using both capabilities but it didn’t work, I tried a few different locator strategies as well but the same issue, finally am just entering it twice and clearing the value in between, I know that’s not a good solution but was just happening for one inputTextField.

You can cast mobileElement to use it.

I’d try to provide a lower value to appium:maxTypingFrequency capability

Thank you so much @mykola-mokhnach and @Aleksei
I tried capabilities.put(“maxTypingFrequency”,“20”); and it’s working now, This is really a good fix. Thanks once again