【问题标题】:How to automate key press on Android emulator on mac with Robot?如何使用机器人在 Mac 上的 Android 模拟器上自动按键?
【发布时间】:2019-06-22 22:47:38
【问题描述】:

我正在尝试使用带有 appium 的 espresso 驱动程序在 Android 模拟器上自动执行几个步骤。尝试允许 Espresso 驱动程序看不到的位置许可时,会出现一个弹出窗口。我目前正在尝试使用以下代码强制几次输入点击:

Robot robot;
    try {
        robot = new Robot();
        robot.keyPress(java.awt.event.KeyEvent.VK_ENTER);
        robot.keyRelease(java.awt.event.KeyEvent.VK_ENTER);
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

但是使用它只会得到以下错误:

java[61315:813119] pid(61315)/euid(765933194) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!

所有这些都在 Macbook 上,我的测试代码在 IntelliJ 中,模拟器从 Android Studio 启动。我曾尝试在 xcode 中禁用主线程扫描程序,但这似乎并没有扩展到 IntelliJ 或 appium。我有没有办法强制苹果忽略这个检查或强制这段代码到“主线程”?

【问题讨论】:

    标签: java android macos automation appium


    【解决方案1】:

    如果您的问题是关于如何通过位置权限对话框,您可以使用GrantPermissionRule,它允许您在测试中授予权限。

    @Rule public GrantPermissionRule permissionRule = GrantPermissionRule.grant(android.Manifest.permission.ACCESS_FINE_LOCATION);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 2017-10-11
      • 1970-01-01
      • 2018-02-19
      • 2022-11-30
      • 1970-01-01
      相关资源
      最近更新 更多