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

ueezoo · 2014年05月14日 · 最后由 思寒_seveniruby 回复于 2014年05月30日 · 2917 次阅读

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

共收到 14 条回复 时间 点赞

swipe 方法

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

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

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

问题已经解决了,谢谢。

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

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

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

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

楼上 @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);

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

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

做个标记

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

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

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