I have an android screen that has an android-IME onEditorAction implemented. I am using appium for UI test automation. I am at a step where I am able to execute a script via appium inspector. But I am not able to execute it from my Java project. I am spawning appiumserver as a service. Need community help to know whether I am missing any desired capability in appiumDriver/appiumServer initialisation.
tools version
Same action scripted in Java as :
driver.executeScript("mobile: performEditorAction", ImmutableMap.of("action", "done"));
Existing appiumdriver capabilities :
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, platform);
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, platformVersion);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName);
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
cap.setCapability(MobileCapabilityType.APP, appPath);
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000");
cap.setCapability(MobileCapabilityType.SUPPORTS_JAVASCRIPT, "true");
mobileDriver = new AndroidDriver<MobileElement>(new URL(url), cap);
Existing appiumServer capabilities:
cap = new DesiredCapabilities();
cap.setCapability("noReset", "false");
builder = new AppiumServiceBuilder();
builder.withIPAddress(ip);
builder.usingAnyFreePort();
builder.withCapabilities(cap);
builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
builder.withArgument(GeneralServerFlag.LOG_LEVEL, "error");
builder.withArgument(() -> "--allow-insecure","chromedriver_autodownload");
tlogger.info("About to start the appium service");
service = AppiumDriverLocalService.buildService(builder);
service.start();
On triggering the script snippet, nothing happens.
Ah ! I missed to focus the textfield. After clicking the textbox mobileElement, the above script ran fine.