android - Appium pressKeyCode 生成 IME 动作
问题描述
在 Appium 版本 1.8.1 中说它可以生成 IME 动作。 Appium 1.8.1 发布
如何使用操作 ID 5 生成 IME 事件输入/创建操作完成或下一步。
也可以通过亚行解雇它吗?
我知道我可以触发命令 adb shell input keyevent 66 来获取输入事件。我想要的是添加到这个命令actionId。
解决方案
这是 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 的定义
推荐阅读
- formatting - 我想加载一个 YAML 文件,可能编辑数据,然后再次转储它。如何保留格式?
- angularjs - AngularJS:如何使用异步数据初始化服务并将其注入依赖服务
- mockito - 在方法周围的弹簧方面模拟方法调用
- javascript - node.js 使用 fs writestream 异步下载多个文件
- php - 按钮单击将用户重定向到另一个页面并发布
- r - 停止 r 安装二进制包
- azure-devops - Terraform:未找到 Azure CLI 授权配置文件。请确保已安装 Azure CLI
- jquery - IOS8上的HTML按钮元素单击失败
- excel - 使用 VBA 从网站抓取信息
- python - ModuleNotFoundError:没有名为“errMsg”的模块