我原本的脚本里有一行代码如下

self.driver.swipe(0.5,0,0.5,0.5,500) 

很简单,就是横坐标 X=0.5 不变,纵坐标 Y 从 0 滑动到屏幕中间,运行的结果就是下滑打开通知栏.

原本在 Appium 1.2 上跑起来都是很正常的,今天手贱把 Appium 升到了 1.3.4,再跑起来就不正常了,实际结果是在 X=0.5,y=0.5 的地方点击,而不是滑动.

我又试了几组不同的坐标,发现问题如下:

self.driver.swipe(0.5, 0, 0.5, 0.5, 500) 

预期: Y 轴从 0 滑动到 0.5
结果 :在 Y = 0.5 处点击

self.driver.swipe(0.5 ,0, 0.5, 0.4, 500) 

预期 : Y 轴从 0 滑动到 0.4
结果 : Y 轴从 0.5 逆向滑动到 0.4

self.driver.swipe(0.5, 0.4, 0.5, 0.6, 500) 

预期 : Y 轴从 0.4 滑动到 0.6
结果 : Y 轴从 0.4 滑动到 0.6

self.driver.swipe(0.5 ,0.1 ,0.5, 0.4, 500) 

预期 : Y 轴从 0.1 滑动到 0.4
结果 : Y 轴从 0.1 滑动到 0.4

self.driver.swipe(0.5, 0.5, 0.5, 1, 500) 

预期 : Y 轴从 0.5 滑动到 1
结果 : Y 轴从 0.5 逆向滑动到 0

self.driver.swipe(0.5, 0.5, 0.5, 0.8, 500) 

预期 : Y 轴从 0.5 滑动到 0.8
结果 : Y 轴从 0.5 滑动到 0.8

self.driver.swipe(0.5, 1, 0.5, 0.5, 500) 

预期 : Y 轴从 1 滑动到 0.5
结果 : Y 轴从 0 滑动到 0.5

self.driver.swipe(0.5, 1, 0.5, 0.8, 500) 

预期 : Y 轴从 1 滑动到 0.8
结果 : Y 轴从 0 滑动到 0.8

Y 轴不变,测试了几组 X 轴,也有这个问题

简而言之, 如果说 appium 1.2 有一个概念是把屏幕视为一个整体,以屏幕的左上角为起点 (x = 0,y = 0),以右下角 (x = 1, y = 1) 终点的话,
appium 1.3.4 似乎容易把 起点:0/正中:0.5/终点:1 这三点的坐标搞混淆.

不知道大家有没有跟我碰到同样的问题?


↙↙↙阅读原文可查看相关链接,并与作者交流