(使用 Swift 进行 UI 测试)获取活动应用程序列表失败:AX 错误 -25205
Posted
技术标签:
【中文标题】(使用 Swift 进行 UI 测试)获取活动应用程序列表失败:AX 错误 -25205【英文标题】:(UI Testing with Swift) Failure getting list of active applications: AX error -25205 【发布时间】:2016-07-15 13:12:47 【问题描述】:我们的测试运行良好,但没有明显的原因(检查提交),UI 测试只是停止在模拟器中工作(尚未在设备上测试)。每次它需要对 UI 组件(如 tap()
或 typeText("string here")
)执行操作时,我们都会在标题中看到错误,Failure getting list of active applications: AX error -25205
。
这是一切都出错的日志:
t = 13.57s Find: Elements matching predicate '"TextFieldUsuario" IN identifiers'
t = 13.74s Assertion Failure: UI Testing Failure - Failure getting list of active applications: AX error -25205
/Users/desenvolvimento/projetos/Mobile-ios/Mobile-iOSUITests/SupportUITests.swift:45: error: -[Mobile_iOSUITests.LoginViewControllerUITest testLoginComSucesso] : UI Testing Failure - Failure getting list of active applications: AX error -25205
2016-07-15 09:46:42.722 XCTRunner[22227:716756] -[__NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x7f8728d66170
t = 13.74s Tear Down
/Users/desenvolvimento/projetos/Mobile-iOS/Mobile-iOSUITests/SupportUITests.swift:45: error: -[Mobile_iOSUITests.LoginViewControllerUITest testLoginComSucesso] : failed: caught "NSInvalidArgumentException", "-[__NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x7f8728d66170"
(
0 CoreFoundation 0x0000000102552d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000101fc6deb objc_exception_throw + 48
2 CoreFoundation 0x000000010255bd3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00000001024a1cfa ___forwarding___ + 970
4 CoreFoundation 0x00000001024a18a8 _CF_forwarding_prep_0 + 120
5 XCTest 0x0000000101a70fcb -[XCAXClient_iOS activeApplications] + 438
6 XCTest 0x0000000101a71eb9 -[XCAXClient_iOS interruptingUIElementAffectingSnapshot:] + 102
7 XCTest 0x0000000101a92ad9 -[XCUIElementQuery matchingSnapshotsHandleUIInterruption:withError:] + 180
8 XCTest 0x0000000101a83d74 __43-[XCUIElement resolveHandleUIInterruption:]_block_invoke + 238
9 XCTest 0x0000000101a63629 -[XCTestCase startActivityWithTitle:block:] + 350
10 XCTest 0x0000000101a83c79 -[XCUIElement resolveHandleUIInterruption:] + 140
11 XCTest 0x0000000101aa3d81 __63-[XCUIElement(XCUIElementEventSynthesis) _dispatchEvent:block:]_block_invoke + 82
12 XCTest 0x0000000101a63629 -[XCTestCase startActivityWithTitle:block:] + 350
13 XCTest 0x0000000101aa3d20 -[XCUIElement(XCUIElementEventSynthesis) _dispatchEvent:block:] + 405
14 XCTest 0x0000000101aa4ea7 -[XCUIElement(XCUIElementEventSynthesis) tap] + 121
15 Mobile-iOSUITests 0x0000000110d7cfca _TFC17Mobile_iOSUITests14SupportUITests13executarLoginfTCSo15XCUIApplication5loginSS5senhaSS_T_ + 1210
16 Mobile-iOSUITests 0x0000000110d7d653 _TFC17Mobile_iOSUITests14SupportUITests32performarLoginValidoComAplicacaofCSo15XCUIApplicationT_ + 627
17 Mobile-iOSUITests 0x0000000110d77d3a _TFC17Mobile_iOSUITests25LoginViewControllerUITest19testLoginComSucessofT_T_ + 138
18 Mobile-iOSUITests 0x0000000110d77d82 _TToFC17Mobile_iOSUITests25LoginViewControllerUITest19testLoginComSucessofT_T_ + 34
19 CoreFoundation 0x000000010243b5cc __invoking___ + 140
20 CoreFoundation 0x000000010243b41e -[NSInvocation invoke] + 286
21 XCTest 0x0000000101a5fef3 __24-[XCTestCase invokeTest]_block_invoke_2 + 362
22 XCTest 0x0000000101a94613 -[XCTestContext performInScope:] + 190
23 XCTest 0x0000000101a5fd78 -[XCTestCase invokeTest] + 169
24 XCTest 0x0000000101a603a2 -[XCTestCase performTest:] + 459
25 XCTest 0x0000000101a5dcf7 -[XCTestSuite performTest:] + 396
26 XCTest 0x0000000101a5dcf7 -[XCTestSuite performTest:] + 396
27 XCTest 0x0000000101a4ab10 __25-[XCTestDriver _runSuite]_block_invoke + 51
28 XCTest 0x0000000101a6bb4c -[XCTestObservationCenter _observeTestExecutionForBlock:] + 640
29 XCTest 0x0000000101a4aa55 -[XCTestDriver _runSuite] + 453
30 XCTest 0x0000000101a4b7d1 -[XCTestDriver _checkForTestManager] + 259
31 XCTest 0x0000000101a95a9a _XCTestMain + 628
32 CoreFoundation 0x00000001024782ec __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
33 CoreFoundation 0x000000010246df75 __CFRunLoopDoBlocks + 341
34 CoreFoundation 0x000000010246d6d2 __CFRunLoopRun + 850
35 CoreFoundation 0x000000010246d0f8 CFRunLoopRunSpecific + 488
36 GraphicsServices 0x000000010460dad2 GSEventRunModal + 161
37 UIKit 0x0000000102908f09 UIApplicationMain + 171
38 XCTRunner 0x00000001019cf8ad XCTRunner + 6317
39 libdyld.dylib 0x0000000104e2f92d start + 1
)
我找到了有类似问题的人,但他们似乎都没有找到解决我们案例的方法:
结果 1:
https://forums.developer.apple.com/thread/47696
解决方案: 安装 El Capitan 并更新 Xcode;我们已经在 El Capitan,我们的 Xcode 是根据 App Store 应用。
结果 2:
iOS UI Testing : Failure getting list of active applications: AX error -25205
解决方案:所有答案都没有给出解决方案。
结果 3:
UITesting Failure getting list of active application
解决方案:在设备上“启用 UI Atomation”(设置 > 开发人员)。它已在模拟器中启用。
我的 Xcode 版本是 7.3.1 (7D1014),OS X 版本是 10.11.4 (15E65)。
有人知道如何解决这个问题吗?也许将 El Capitan 更新到最新版本?
【问题讨论】:
试试 Xcode 8?或者也许回到另一个方向?我的经验是,UI 测试在 Xcode 7.3.1 中几乎被破坏了。 那么在 Xcode 8 中更好吗? 这对我来说好多了,但是 YMMV。这就是为什么我建议你至少尝试一下。 Xcode 8 下载失败,但我们已降级到 Xcode 7.3.0,现在可以使用了 :) 哇!嗯,这是有用的信息。您应该回答自己的问题(并且在 48 小时内您可以接受自己的回答)。 — 我很好奇为什么 Xcode 8 不工作。如果这是 7.3.1 中引入的错误并且在 8 中仍然存在,您绝对应该向 Apple 提交错误报告。 【参考方案1】:[Mobile_iOSUITests.LoginViewControllerUITest testLoginComSucesso]
似乎是真正的原因。由于方法名称 testLoginComSucesso 中有错字,您确定您调用的方法是否正确?
因为跟随而抛出异常
[NSObject(NSObject) doesNotRecognizeSelector:]
您的 LoginViewControllerUITest 似乎无法识别该方法
【讨论】:
考虑到我调用该测试直接抛出 Xcode(按下左侧的小球)并且这些指令在该方法中,我确信这不是原因。此外,该电话的例外情况是:[__NSCFString countByEnumeratingWithState:objects:count:]
;我想这是由于 AX 错误而被调用的。
你能发布你的 testLoginComSuccesso 实现吗?【参考方案2】:
感谢马特,我找到了解决方案。这似乎是 Xcode 7.3.1 的一个错误。降级到 Xcode 7.3.0 解决了这个问题。
编辑: 如果有人正在寻找 Xcode 7.3.0 以供下载,您可以在这里找到它: https://developer.apple.com/download/more/
【讨论】:
以上是关于(使用 Swift 进行 UI 测试)获取活动应用程序列表失败:AX 错误 -25205的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 7.0.1 中进行 UI 测试时,是不是可以使用 Swift 滚动到 Element()?