Appium appium-欢迎页向右滑动 4 次点击立即体验到首屏

sincool · 2015年07月09日 · 最后由 SongBoya 回复于 2015年12月23日 · 83 次阅读
#coding=utf-8
'''
Created on 2015年7月9日

@author: l
'''
from appium import webdriver
from time import sleep  

desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'SM-N9100'
desired_caps['app'] = 'C:\\Users\\liujuan\\Desktop\\apk\\autoclub_4.1.0_pcauto.apk'
desired_caps['appPackage'] = 'cn.com.autoclub.android.browser'
desired_caps['appActivity'] = 'cn.com.autoclub.android.browser.module.launcher.LauncherActivity'
driver = webdriver.Remote('http://127.0.0.1:4727/wd/hub', desired_caps)
sleep(10)
driver.swipe(610, 2452, 658, 2452, 200)

我只是试用一下 swipe,一张图都滑动不了。求解!我看了论坛所有关于滑动的帖子,。。。大神请不要喷

共收到 18 条回复 时间 点赞

两个建议
把 200 改成 800 试试看
然后开发者模式中把 “指针位置” 这个开启,实际看看有没有进行滑动

感觉你的 X 坐标差距太小了,滑动是要从大的 x 坐标滑动到小的 x 坐标,时间稍微长点,试试这个呢 driver.swipe(1200, 200, 10, 200, 1500);

可以打开开发者选项里的 “显示触摸操作”,看下你的 swipe 到底划了多长,是否足够滑动整个屏幕。
另外,651 到 658 这个距离应该只相当于你页面底部两个指示点之间的距离,这么短的距离当然没法划走屏幕。一般要划掉半个屏幕宽度才够。

@eurekasaber 多谢,我看一下

@aster30 多谢,我试试

@chenhengjie123 多谢,我再调整一下 x 坐标的数据

@aster30 真的可以滑动了呀,我滑动到第 2 张图的时候,打开开发者指针显示,dx:-1190 Prs:1.0..你给我这个数据是怎么看的?

#7 楼 @sincool 其实我的判断很简单,你注意看你的截图右边,最上面的那行:(0)FrameLayout[0][0],[1440][2569],从这行就能看出你屏幕整个的尺寸,x 最大是 1440,y 是 2569,向右滑动,X 坐标是从大坐标到小坐标,就在 0 到 1140 范围内选两个相差大一些的 x 坐标,我给的那个,就是 x 从 1200 到 10

@aster30 你这样一讲,理解了。多谢多谢!!!原来这个数据并不是唯一的,只要是合适就行

最好封装一下呢,要不换个设备就不行

可以封装个通用方法,坐标用设备分辨率来换算。这样就所有设备都能用了

@wang04170 @yxgtianya 好的我试试,多谢

其实不用坐标也可以吧,比如 scrollTo

调整一下 X 坐标,将 200 改大一些

这个方法我用过,很好实现,当时有两点注意的:(1)横向 Y 不变,X 数值减少(为了在不同设备上都可以跑,建议数值都不要从边缘开始);(2)duration 的值不要低于 500(之前查过相关的资料,具体什么原因忘了)
AppiumLibrary.Swipe start_x=300 start_y=200 end_x=0 end_y=200 duration=1000
我这么写的,在 6+、6、5 上面都可以通用

左右滑动只改 X 就好了, 我写 swipe 坐标都是用最笨的方法, 在屏幕上找坐标,还不会封装呢

#3 楼 @chenhengjie123 我写 iOS 遇上了同样的情况,滑动无效~请问 iphone 有没有类似设置打开显示触摸操作的设置呢?谢谢~~

#15 楼 @qzhang 太感谢了。。。用了你的坐标才可以滑动。。。之前试了很多方法都不行~~~~

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