openatx / facebook-wda

Facebook WebDriverAgent Python Client Library (not official)
MIT License
1.71k stars 266 forks source link

无法使用/wda/drag命令,报错WDARequestError(status=110, value={'error': 'unknown command',..... #112

Open luoshengheng opened 3 years ago

luoshengheng commented 3 years ago

我在源码中发现_fast_swipe方法,发现有一个velocity参数应该是控制滑动速度的,想尝试使用,但是报未知命令的错误,是对wda的版本有要求吗?wda版本用的是https://github.com/appium/WebDriverAgent,facebook-wda是1.4.0

luoshengheng commented 3 years ago

wda.exceptions.WDARequestError: WDARequestError(status=110, value={'error': 'unknown command', 'message': 'Unhandled endpoint: /session/F59C58F3-BF1F-489B-922D-49E72DD90036/wda/drag -- http://localhost:20011/ with parameters {\n wildcards = (\n "session/F59C58F3-BF1F-489B-922D-49E72DD90036/wda/drag"\n );\n}'})

codeskyblue commented 3 years ago

这个是因为公司内部的一个wda在用,外部目前的wda没有这个接口。用的是 EventGenerator.h 不过现在的xcode好像用不了了

dmdada commented 3 years ago

请问这里解决了吗,这个滑动的太慢了

codeskyblue commented 2 years ago

@dmdada 要不要试试新写的一个库(虽然还在开发中,但是部分功能能用了)。尤其是滑动和点击速度很快 https://github.com/openatx/wdapy 这个库基于的一个其他人修改的fork版: https://github.com/codeskyblue/WebDriverAgent

import wdapy
c = wdapy.NanoscopicClient()
c.swipe(x1, y1, x2, y2)
dmdada commented 2 years ago

好的感谢你,我这边想匀速的滑动ios设备不知道能否实现这种场景呢,测试滑动流畅度需要页面持续滚动

linyajun558 commented 2 years ago

是的,我这边也想用这个,也是想匀速的滑动ios设备不知道能否实现这种场景呢,测试滑动流畅度需要页面持续滚动,这个现在对外开放么

linyajun558 commented 2 years ago

好的感谢你,我这边想匀速的滑动ios设备不知道能否实现这种场景呢,测试滑动流畅度需要页面持续滚动

你好,想问下你实现了,流畅度快速滑动的场景么

dmdada commented 2 years ago

好的感谢你,我这边想匀速的滑动ios设备不知道能否实现这种场景呢,测试滑动流畅度需要页面持续滚动

你好,想问下你实现了,流畅度快速滑动的场景么

我这边实现了,他这个接口是没问题的,由于涉及到公司代码管理规范,我不能给你,抱歉

zheng-dou commented 1 year ago

在wda的源码中,从FBElementCommands.m里,你可以看到“/wda/dragfromtoforduration”对应的处理函数“handleDragCoordinate”,由此可以了解wda对swipe消息的处理方法,比较幸运的是,XCUICoordinate已经提供了我们所需要的方法,通过修改最后一个函数调用(增加velocity参数),即可实现对滑动速度的控制, 示例: [startCoordinate pressForDuration:duration thenDragToCoordinate:endCoordinate withVelocity:5000 thenHoldForDuration:duration];