Appium 【已解决】关于左右滑动

ueezoo · May 14, 2014 · Last by 思寒_seveniruby replied at May 30, 2014 · 1472 hits

请问在浏览相册的时候相片的左右滑动如何实现?

共收到 14 条回复 时间 点赞

#13 楼 @kernel
我也碰到过,这种情况下我会在那个页面休眠一秒钟,那样就不报错了。虽然我并不知道原因

我的 appium 版本是 1.2.3, duration 我也设置了 200 甚至 2000 我都试过
但是为什么还是报错:An unknown server-side error occurred while processing the command
有大神解答一下吗?

做个标记

貌似跟手机有关系 我同一个代码在别人的机器上可以的 在我这里就是报错:An unknown server-side error occurred while processing the command
我在系统设置界面用 adb shell input swipe 200 400 200 800 也看不到滑动效果,但是 adb shell input keyevent POWER 是有用的

#9 楼 @eric 估计是 Uiautomator 相关的问题, 中间有个计算, 很早之前看过代码, 这块有待跟进追查原因. 是个坑

楼上 @seveniruby 正解,最后一个参数大于 60 可以保证不抛异常,但不能保证效果。我的一个场景里有一个 4 个图像对象的 HORIZONTALSCROLL 对象,我本来计划从第 4 个对象的位置滑动到第一个对象的位置。结果跑 10 次 10 个滑动效果。最后决定一次只滑动一个对象间距。效果还可以。以下是代码:
WebElement e0 = getElementsByClassAndIndex(AndroidClassName.HORIZONTALSCROLL, 1).get(0);
List e1 = e0.findElements(By.className(AndroidClassName.IMAGEVIEW));
TouchAction act = new TouchAction(driver);

Point p0 = getCenterPoint(e1.get(3));// 自己写的获取元素中心点的方法。
Point p1 = getCenterPoint(e1.get(2));

driver.swipe(p0.x, p0.y, p1.x, p1.y, 200);

#6 楼 @cl51cl 把最后一个参数设置的大点就可以了. @lihuazhang

driver.swipe(100, 500, 100, 100, 200);

#5 楼 @ueezoo 共享下解决方法呗?

swipe 方法会报这个错误,不知道为什么?
An unknown server-side error occurred while processing the command

ueezoo #5 · May 21, 2014 Author

问题已经解决了,谢谢。

ueezoo #4 · May 15, 2014 Author

那 slide() 方法里的 startX 、stertY 、endX 、endY、 time、 repStr 如何传参了?

如果要是低于 1.0 的,可以使用 js 注入方式实现,下面是具体的代码实现:

swipe 现在效果有待改善啊,移动的目标跟设定的坐标有比较大的出入

swipe 方法

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up