- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经为我的应用程序创建了一个用于 XCUItesting 的测试套件...但是自升级(不确定是否相关)到 xcode 8 和使用 ios10 模拟器后,我的测试用例将仅在 ios9 而不是 10 中运行。当我在 ios 10 模拟器中运行测试时,出现错误 Assertion Failure: <unknown>:0: UI Testing Failure - Failure getting snapshot Error Domain=XCTestManagerErrorDomain Code=9 "Error -25204 getting snapshot for element <AXUIElement 0x7fe2a6614ad0> {pid=7751}" UserInfo={NSLocalizedDescription=Error -25204 getting snapshot for element <AXUIElement 0x7fe2a6614ad0> {pid=7751}}
有没有人也遇到过这个?或者有谁知道我哪里出错了?
非常感谢
最佳答案
我遇到了同样的问题。测试失败并出现相同的错误,但根本原因是应用程序崩溃了。我设置了一个异常断点并打印回溯以查看位置。
最终,这是由于 uitableviewdelegate
的方法签名之一中的隐式解包可选导致的崩溃:
public func tableView(_ tableView: UITableView, canPerformAction action: Selector, forRowAt indexPath: IndexPath, withSender sender: Any?) -> Bool
该方法在UI测试时被系统调用,indexPath
参数为nil
,导致应用挂起。
回溯显示:
(lldb) thread backtrace
* thread #1: tid = 0x128eaa, 0x000000010c776c3a libswiftFoundation.dylib`static Foundation.IndexPath._unconditionallyBridgeFromObjectiveC (Swift.Optional<__ObjC.NSIndexPath>) -> Foundation.IndexPath + 42, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
* frame #0: 0x000000010c776c3a libswiftFoundation.dylib`static Foundation.IndexPath._unconditionallyBridgeFromObjectiveC (Swift.Optional<__ObjC.NSIndexPath>) -> Foundation.IndexPath + 42
frame #1: 0x0000000108443241 Static`@objc DataSource.tableView(UITableView, canPerformAction : Selector, forRowAt : IndexPath, withSender : Any?) -> Bool + 97 at DataSource.swift:0
frame #2: 0x00000001095aea31 UIKit`-[UITableView _canPerformAction:forCell:sender:] + 169
frame #3: 0x00000001098017c6 UIKit`-[UITableViewCell canPerformAction:withSender:] + 86
frame #4: 0x00000001210a5fc9 UIKit`-[UIResponder(UITextAccessibilityUtilities) _accessibilityHasTextOperations] + 100
frame #5: 0x000000012107bb7c UIKit`-[UITableViewCellAccessibilityElement _accessibilityHasTextOperations] + 48
frame #6: 0x00000001211f09ec UIAccessibility`-[NSObject(AXPrivCategory) accessibilityAttributeValue:] + 5945
frame #7: 0x000000012120bc04 UIAccessibility`_accessibilityAttributesForObject + 767
frame #8: 0x000000012120b5e8 UIAccessibility`-[NSObject(UIAccessibilityAutomation) _accessibilityUserTestingSnapshotDescendantsWithAttributes:maxDepth:maxChildren:maxArrayCount:] + 1736
frame #9: 0x000000012120cf96 UIAccessibility`-[NSObject(UIAccessibilityAutomation) _accessibilityUserTestingSnapshotWithOptions:] + 557
frame #10: 0x00000001211eec0a UIAccessibility`-[NSObject(AXPrivCategory) accessibilityAttributeValue:forParameter:] + 7903
frame #11: 0x00000001211d8856 UIAccessibility`_copyParameterizedAttributeValueCallback + 211
frame #12: 0x0000000120869532 AXRuntime`_AXXMIGCopyParameterizedAttributeValue + 216
frame #13: 0x0000000120863f1c AXRuntime`_XCopyParameterizedAttributeValue + 440
frame #14: 0x0000000120872de5 AXRuntime`mshMIGPerform + 266
frame #15: 0x00000001064e93d9 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
frame #16: 0x00000001064e9351 CoreFoundation`__CFRunLoopDoSource1 + 465
frame #17: 0x00000001064e1435 CoreFoundation`__CFRunLoopRun + 2389
frame #18: 0x00000001064e0884 CoreFoundation`CFRunLoopRunSpecific + 420
frame #19: 0x000000010e5bda6f GraphicsServices`GSEventRunModal + 161
frame #20: 0x000000010943dc68 UIKit`UIApplicationMain + 159
frame #21: 0x000000010462c95f GoOut`main + 111 at AppDelegate.swift:47
frame #22: 0x000000010cb7e68d libdyld.dylib`start + 1
frame #23: 0x000000010cb7e68d libdyld.dylib`start + 1
在知道是哪个方法导致它之后,修复非常简单——只需将 indexPath
类型替换为可选的 IndexPath?
(添加问号):
public func tableView(_ tableView: UITableView, canPerformAction action: Selector, forRowAt indexPath: IndexPath?, withSender sender: Any?) -> Bool
然后使用 nil
正确调用该方法并且不会导致崩溃。
有关详细信息,请参阅:https://openradar.appspot.com/31375101并随意欺骗雷达。
关于swift - 由于 ""错误 -25204 获取元素的快照,XCUI 测试在 iOS 10 上失败但在 iOS 9 上失败”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870055/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!