Xcode 在尝试进行涉及 web 视图的 UI 测试时崩溃
Posted
技术标签:
【中文标题】Xcode 在尝试进行涉及 web 视图的 UI 测试时崩溃【英文标题】:Xcode crashes when trying to make a UI test that involves a webview 【发布时间】:2018-05-20 21:41:01 【问题描述】:致力于为 Swift ios 应用构建自动 UI 测试。该应用程序涉及使用 facebook 登录的 web 视图。每次在 web 视图的范围内点击并尝试登录 facebook,如果我尝试使用内置的 Xcode UI 记录构建 UI 测试,它会导致 Xcode 崩溃。不管我是用 iPhone 6 还是模拟器,不管 Xcode 会崩溃。
我使用的是 Xcode 9。还有 FBSDKLoginKit 和 FBSDKCoreKit。
重现步骤:
1) 拥有一个带有 web 视图的应用
2) 命中记录 UI 测试
3) 单击 webview 范围内的任意位置
这种行为有原因吗?
我需要更改 Xcode 中的设置以记录 Web 视图交互吗?
以下是我在 Xcode 崩溃时收到的错误消息。
Process: Xcode [70544]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 9.3 (14154)
Build Info: IDEFrameworks-14154000000000000~2
App Item ID: 497799835
App External ID: 826408812
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Xcode [70544]
User ID: 501
Date/Time: 2018-05-21 14:04:50.053 -0400
OS Version: Mac OS X 10.13.4 (17E199)
Report Version: 12
Anonymous UUID: 335CE1E7-B5AB-F717-E6D0-019AF52B3708
Sleep/Wake UUID: 7824F1AB-C514-4609-A447-F15EA9C86C84
Time Awake Since Boot: 99000 seconds
Time Since Wake: 1800 seconds
System Integrity Protection: enabled
Crashed Thread: 18 Dispatch queue: XCUIRecorder_iOS.processingQueue
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
ProductBuildVersion: 9E145
UNCAUGHT EXCEPTION (NSInternalInconsistencyException): First snapshot has type Other: Other, 0x7f9d8c64aaf0, 0.0, 0.0, 0.0, 0.0
UserInfo: (null)
Hints:
Backtrace:
0 __exceptionPreprocess (in CoreFoundation)
1 DVTFailureHintExceptionPreprocessor (in DVTFoundation)
2 objc_exception_throw (in libobjc.A.dylib)
3 +[NSException raise:format:arguments:] (in CoreFoundation)
4 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] (in Foundation)
5 +[XCUIRecorderNodeFinder nodeToFindElementForSnapshots:language:platform:] (in XCTest)
6 -[XCUIRecorderUtilities nodeToFindElementForSnapshots:] (in XCTest)
7 __177-[XCUIRecorder_iOS _XCT_recordedEventNames:timestamp:duration:startLocation:startElementSnapshot:startApplicationSnapshot:endLocation:endElementSnapshot:endApplicationSnapshot:]_block_invoke (in XCTest)
8 _dispatch_call_block_and_release (in libdispatch.dylib)
9 _dispatch_client_callout (in libdispatch.dylib)
10 _dispatch_queue_serial_drain (in libdispatch.dylib)
11 _dispatch_queue_invoke (in libdispatch.dylib)
12 _dispatch_root_queue_drain_deferred_wlh (in libdispatch.dylib)
13 _dispatch_workloop_worker_thread (in libdispatch.dylib)
14 _pthread_wqthread (in libsystem_pthread.dylib)
15 start_wqthread (in libsystem_pthread.dylib)
ëØ$ïˇˇ
abort() called
Application Specific Signatures:
NSInternalInconsistencyException
【问题讨论】:
同样的事情发生在我身上 【参考方案1】:这对我来说似乎是一个 Xcode 错误。您可以通过Apple Bug Reporter 举报。
【讨论】:
根据Apple论坛forums.developer.apple.com/thread/98038“记录涉及WKWebView的UI测试崩溃Xcode”,该人报告了一个错误bugreport.apple.com/web/?problemID=38190991,但是,Apple不允许您查看错误......所以,也许它被报道了,也许它正在被调查,也许没有......以上是关于Xcode 在尝试进行涉及 web 视图的 UI 测试时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Xcode 在混合应用程序的 web 视图中查找元素?