如何使用AirTest对触摸事件使用绝对位置(方向无关紧要)

时间:2018-10-17 23:22:44

标签: android python adb

我有一个脚本,可将adb shell getevent -t命令的输出解析为更多抽象事件(例如Type: LONG_CLICK, Location: (x, y))。我使用此解析后的输出来重播使用AirTest手机游戏测试框架在adb命令期间发生的事件,主要是使用其Android api。一个示例是运行AirTest命令touch((x,y)),但是,AirTest touch命令考虑了设备的方向,而adb shell getevent -t没有考虑。这导致两个坐标系之间的不匹配和不希望的行为。我想知道是否有一种方法可以使adb命令根据设备的方向给出相对坐标,或者是否有办法使AirTest忽略设备的方向。我已经浏览了[getevent][1]的{​​{1}}命令中的android文档,但没有讨论任何可以做到这一点的标志。我也经历过AirTests documentation,并且没有非hacky的方式来做到这一点。我发现的hacky方法是进入库的源代码,并根据方向注释掉执行翻译的部分,但是,这是不希望的,因为必须更改库的源代码才能获得这种行为。

1 个答案:

答案 0 :(得分:0)

弄清楚了。在执行触摸命令之前,我可以直接更改AirTest认为的方向:

android = api.device()
android._display_info["orientation"] = 0.0

将方向值设置为0.0,它使用与adb shell getevent -t相同的坐标系