首页 > 解决方案 > Appium pressKeyCode 生成 IME 动作

问题描述

在 Appium 版本 1.8.1 中说它可以生成 IME 动作。 Appium 1.8.1 发布

如何使用操作 ID 5 生成 IME 事件输入/创建操作完成或下一步。

也可以通过亚行解雇它吗?

我知道我可以触发命令 adb shell input keyevent 66 来获取输入事件。我想要的是添加到这个命令actionId。

标签: androidselenium-webdriverappiumandroid-softkeyboardime

解决方案


这是 Appium 编写的用于生成 IMEAction 的单元测试。

这个测试是为 APIDemos.apk 编写的,可以在这里找到

public class KeyCodeTest {

  final By PRESS_RESULT_VIEW = By.id("io.appium.android.apis:id/text");
  final Activity activity;   

    @Test
    public void pressKeyAndGenerateIMEActionTest() {
        activity = new Activity(driver.getCurrentPackage(), ".text.KeyEventText");
        driver.startActivity(activity);
        driver.pressKey(new KeyEvent()
                .withKey(AndroidKey.ENTER)
                .withFlag(KeyEventFlag.SOFT_KEYBOARD)
                .withFlag(KeyEventFlag.KEEP_TOUCH_MODE)
                .withFlag(KeyEventFlag.EDITOR_ACTION));
        final String state = driver.findElement(PRESS_RESULT_VIEW).getText();
        // This event won't update the view
        assertTrue(state.isEmpty());
    }

我相信如果我们可以运行它,它应该会在 appium 服务器日志中显示 adb 命令详细信息 可以在此处阅读不同 KeyEventFlag 的定义


推荐阅读