Appium Appium 升级到 1.3.4 之后,取坐标貌似出问题了

tankb52 · 2014年12月02日 · 最后由 JennyHui 回复于 2015年03月19日 · 1810 次阅读

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

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 这三点的坐标搞混淆.

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

共收到 7 条回复 时间 点赞

把 500 改成 0. 试试

#1 楼 @jinjun0620

试过了,跟这个时间好像没有关系.

你试试看把 0,1 这些改成对应的真实的最大/最小坐标值。。

#3 楼 @sziitash
刚刚试过了,使用起点:0/正中:0.5/终点:1 这些对应的真实值 0/960/1920 ,还是会有问题。感觉就是 appium 无法区别起点,正中和终点这三个点,稍微改动一个象素,就完全没有问题。

1 已经是一个真实坐标值了,0 应该是 appium 无法识别的坐标。
所以对应的真实值应该是 1/960/1920

#5 楼 @sziitash
是的,应该就是这个原因。

数学不好,看到这个有点欲哭无泪的 feel

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册