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 UI 测试 - 拖放

在 Xcode UI 测试中是不是可以获取视图的方向

如何让 Xcode 在混合应用程序的 web 视图中查找元素?

在 Swift UI/Xcode 中创建导航链接错误

ui测试xcode,如何使用cellquery点击表格视图单元格按钮

将 StoryBoard 从 Xcode 更新到 Xcode 9 时出现 UI 问题