如何使用Robot在Mac上的Android仿真器上自动执行按键操作?

时间:2019-01-29 18:18:40

标签: java android macos automation appium

我正在尝试使用带有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。我有办法强迫苹果忽略此检查或将这段代码强制给“主线程”吗?

1 个答案:

答案 0 :(得分:0)

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

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