javaappiumappium-androidappium-desktop

Not able to executeScript in appiumdriver. However the script snippet works in Appium inspector. Is there any desired capability to fix this?


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

On Appium inspector AppiumInspectorView

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.


Solution

  • Ah ! I missed to focus the textfield. After clicking the textbox mobileElement, the above script ran fine.