Appium Appium Python 处理 IOS 元素左 (右) 滑操作

贫僧纠结中 · 2019年03月13日 · 最后由 John 回复于 2019年03月13日 · 2456 次阅读

参考思路 github 地址:https://github.com/appium/appium/issues/447

说下操蛋的滑动啊,到处都是坑

最初使用 swipe,现在不支持这玩意,很尴尬

driver.swipe(300,116,50,116)

然后使用 TouchAction,竟然也报错

driver.execute_script("mobile:dragFromToForDuration", {"duration": 0.5, "element": None, "fromX": 100, "fromY": 116, "toX": 20, "toY": 116})

使用网上常用的 js 不能满足,会先触发一个点击操作

driver.execute_script("mobile:dragFromToForDuration", {"duration": 0.5, "element": None, "fromX": 100, "fromY": 116, "toX": 20, "toY": 116})

能实现的 js 如下:

driver.execute_script("mobile:swipe", {"direction":"left", 'element' : class_elem,"duration": 1})

其中 direction 为移动的方向,包含:left、right、up、down 方便对应左、右、上、下,其中滑动的元素 size 不宜太小

附全部代码

driver.find_element_by_name('类').click()
class_elem = driver.find_element_by_name('模板类 · 公司') 
time.sleep(2)    
driver.execute_script("mobile:swipe", {"direction":"left", 'element' : class_elem,"duration": 1})
time.sleep(2)
driver.find_element_by_name('复制').click()
共收到 3 条回复 时间 点赞

不支持 swipe 了吗

driver.execute_script("mobile: dragFromToForDuration",后面无需加 element, 直接跟 4 个坐标 +duration, 肯定可以用,我用了很久了

可以啊,我用的 Appium 1.9.1 swipe 可以的,只是你要加个 duration 参数,swipe(x * 3 / 5, y / 2, x / 10, y / 2, 2000)
之前在 1.6 到 1.7 这版本之间确实 swipe 用的有问题

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