不知道咋的今天又好了,昨天点保存没反应,我应该看看网络请求状态的
无法编辑,更新文章不可用,致命!!!
界面上没有 loading 控件不就表示加载完了吗,刚开始可能没有 loading,那么在检测这个控件的时候,不妨多花点时间多检测几次不就完了?
你把超时时间设置更长一些试试,比如 10 分钟
确实获取不到,超时没响应。可能这个界面元素太多了
鸿蒙有点挂羊头卖狗肉的感觉,其实还是个 android 系统
可以哦
dragfromtoforduration 这个方法不会,下面是这个方法的源码:
+ (id<FBResponsePayload>)handleDragCoordinate:(FBRouteRequest *)request
{
FBSession *session = request.session;
CGPoint startPoint = CGPointMake((CGFloat)[request.arguments[@"fromX"] doubleValue], (CGFloat)[request.arguments[@"fromY"] doubleValue]);
CGPoint endPoint = CGPointMake((CGFloat)[request.arguments[@"toX"] doubleValue], (CGFloat)[request.arguments[@"toY"] doubleValue]);
NSTimeInterval duration = [request.arguments[@"duration"] doubleValue];
XCUICoordinate *endCoordinate = [self.class gestureCoordinateWithCoordinate:endPoint application:session.activeApplication shouldApplyOrientationWorkaround:isSDKVersionLessThan(@"11.0")];
XCUICoordinate *startCoordinate = [self.class gestureCoordinateWithCoordinate:startPoint application:session.activeApplication shouldApplyOrientationWorkaround:isSDKVersionLessThan(@"11.0")];
[startCoordinate pressForDuration:duration thenDragToCoordinate:endCoordinate];
return FBResponseWithOK();
}
执行拖动的是 [startCoordinate pressForDuration:duration thenDragToCoordinate:endCoordinate];
,但是这个会有惯性,无法控制速度,我发现有个方法叫:- (void)pressForDuration:(NSTimeInterval)duration thenDragToCoordinate:(XCUICoordinate *)otherCoordinate withVelocity:(XCUIGestureVelocity)velocity thenHoldForDuration:(NSTimeInterval)holdDuration;
,这个方法可以控制速度,滑动完成后可以 hold 指定时间,如下图所示:
这个方法执行拖动后,会一直 hang 住某个地方,其他滑动惦记都难以被响应
appium 太慢,消息一来一回,再加上各种消耗,toast 早消失了
遇到过,忘记怎么解决了,你可以看看是在哪句代码卡主了
将通知栏滑下来,再提取通知栏里面的文本,很准
浙大的 maxim 或者 字节跳动的 fastbot,据说 fastbot 要更好一些。
不过都只支持 android,据说 fastbot 后面会支持 ios
这个工具可以弃坑了,不要用
对 UIAutomator 而言可见性一般通过 bounds 来判断。除非是 robotium 或者 espresso 可以直接调用控件的 api 来判断可见性。
但是这种不可见的元素你忽略就好啦,绕不开?
刚刚调试发现,如果采用 predicate string 的话,在匹配字符串的时候,会自动给文本左右加 *,来模糊匹配
如日志:
16:52:29,668 INFO - WDAStarter: t = 15.98s Find: Elements matching predicate 'wdName LIKE "*添加*" AND (1 == 1 OR identifier == 0 OR frame == 0 OR value == 0 OR title == 0 OR label == 0 OR elementType == 0 OR enabled == 0 OR placeholderValue == 0 OR selected == 0)' - [pool-6-thread-1](12-24 16:52:29,668)
predicate 是谓词的意思,模糊匹配谓词
要看 appium 使用的是何种自动化技术:
如果自动化技术是 UIAutomator 的话,是无法获取到 url 的,除非是小程序,通过 ws 接口可以拿 url
如果用的是 espresso,是可以拿 url 的
首先不可见的元素是很普遍的,我们做 ui 自动化忽略掉它就行了,如果要分析原因,我猜测这个列表项是否有水平滑动的操作,水平滑动列表项之后,有个删除按钮,这个不可见的框是否是这个呢?
getpagesource 获取控件树就会卡主是吗
暂时还没遇到执行超时的情况,是哪个接口执行必现吗?
没有相关基础和经验的确容易让人望而生畏
appium 还在一直更新 wda, idb 在使用上问题挺多的,也不方便二次开发
消灭了零回复
wda 的代码已经写的很好了,可以针对具体发现的错误进行优化
还行吧,可能我测试的设备不够多,楼主是用的 appium 吗