- 问题
- 按照android的滑动,比如要是向上滑动就是y坐标从大滑到小,比如y坐标是100,那么相对坐标就是100*0.8->100*0.2,x坐标不变即可,这样子在android上面运行没问题,但是在ios屏幕上一直是往下滑动
- appium的log打印出来是这样的
Received the following touch action: press(options={"y":533,"x":187})-wait(options={"ms":1000})-moveTo(options={"y":166,"x":187})-release(options={})
- 可以看出让appium执行滑动命令的是从大坐标往小坐标移动,但是在看一条日志
Proxying [POST /wda/dragfromtoforduration] to [POST http://localhost:8100/session/52C75AF0-8CF4-4D86-A72F-83A89677FA93/wda/dragfromtoforduration] with body: {"fromX":187,"fromY":533,"toX":374,"toY":699,"duration":1}
- 这个日志可以看appium执行的时候其实坐标是对的,但是终点坐标变成了699,ios 4.7寸的y轴最大才667,可见已经超出了屏幕范围,我猜是这个坐标导致一直是往下滑动的操作
- 解决办法
- 如果继续调用swipe方法肯定是不得行,我感觉是appium执行转化坐标的时候可能存在bug,那我们直接就调用wda里面的执行方法(dragFromToForDuration)告诉他滑动的坐标距离是多少,即可解决此问题
self.driver.execute_script("mobile: dragFromToForDuration", {"fromX": width / 2,
"fromY": height * 4 / 5,
"toX": width / 2,
"toY": height / 4,
"duration": 1})
- 如果继续调用swipe方法肯定是不得行,我感觉是appium执行转化坐标的时候可能存在bug,那我们直接就调用wda里面的执行方法(dragFromToForDuration)告诉他滑动的坐标距离是多少,即可解决此问题
appium ios 上滑y坐标传值问题
最新推荐文章于 2024-04-09 16:52:33 发布