Send TAB key using AppiumStudio in c#

Hello All,
I have recently started using AppiumStudio. For most of it, it is much better than plain Appium but I have found one feature that apparently is supported in only in Appium: send {TAB} key (keyCode 61 as per Android documentation)
It looks like it is indeed not supported as in the AppiumStudio IDE: there is only SendKeys() function available, which supports {ENTER} and {BKSP} but no other special keys
I’m not sure if I’m doing everything correctly, as my understanding was that this driver was an extension of Appium and every feature supported by it would be supported. I tested an equivalent code using Java and Appium and it worked perfectly.

Here is my environment:
I’m using appiumStudio as driver, my code is in a visual studio project using NUnit and c#

The driver is created with:
driver = new AndroidDriver(new Uri(“http://localhost:4723/wd/hub”), dc);

Everything works fine, until this line:
driver.PressKeyCode(61); // Send tab

Here is the error trace:
Result StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters) at OpenQA.Selenium.Appium.AppiumDriver1.OpenQA.Selenium.Appium.Interfaces.IExecuteMethod.Execute(String commandName, Dictionary2 parameters) at OpenQA.Selenium.Appium.AppiumCommandExecutionHelper.PressKeyCode(IExecuteMethod executeMethod, Int32 keyCode, Int32 metastate) at OpenQA.Selenium.Appium.Android.AndroidDriver1.PressKeyCode(Int32 keyCode, Int32 metastate)
at AndroidApp.compra.Testcompra() in line 95
Result Message: System.NotImplementedException : Not Implemented (pressKeyCode with keycode=‘61’ is not implemented)

Hi @cyuste

Thank you for raising this issue, I am currently consulting our QA team about this issue.

In what context are you trying to send the Tab key event? Perhaps using SeeTest commands will be of help to you in the mean time.

You can try:

driver.executeScript("experitest:client.elementSendText(\"NATIVE\", \"<ELEMENT TO SEND KEYS TO>']\", \"0\", \"{TAB}\")");

Let us know if this works for you.

Hi @cyuste

A quick update, you can use the following command:

driver.executeScript("experitest:client.run(\"adb shell input keyevent 61\")");

in the meantime.

Hello @nivi,

Thank you very much for your answer, driver.executeScript is working just fine

Regarding the context, I’m filling a form in an app, in this page the return icon of the keyboard is replaced by the tab (next) button and it is the fastest way to navigate through all the fields

Best Regards,

Can you use the

driver.pressKeyCode(AndroidKeyCode.KEYCODE_TAB)

command?

hi @davebeattie and @cyuste

just a quick update, we are about to release a new version (11.2) which includes fixes for the issue