问题描述
我正在通过 XCTest 编写 UI 测试。因为模拟器将我的应用程序放在跳板的第二个屏幕上。我需要向左滑动才能找到我的应用图标,然后将其删除。
我在 Xcode10 上做了如下操作:
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
XCUIDevice.shared.press(.home)
sleep(1)
// Force delete the app from the springboard
if icon.exists {
while !icon.isHittable {
let scrollView = springboard.otherElements["Home screen icons"].otherElements["SBFolderScalingView"].children(matching: .scrollView).element(boundBy: 0)
scrollView.swipeLeft() //Swipe over to the Today view
sleep(1)
}
// Bring up the little "X" button to delete the app
// The little "X" button is,it seems,not exposed directly
let xButtonCoordinate = CGVector(dx: (icon.frame.minX + 5) / springboard.frame.maxX,dy: (icon.frame.minY + 5) / springboard.frame.maxY)
// Delete the app
springboard.coordinate(withnormalizedOffset: xButtonCoordinate).tap()
sleep(1)
let deleteButton = springboard.alerts.buttons["Delete"].firstMatch
if deleteButton.waitForExistence(timeout: 5) {
deleteButton.tap()
}
}
但是,它在 Xcode11 上不再工作,并出现以下错误:
t = 1.19s Swipe left ScrollView
t = 1.19s Wait for com.apple.springboard to idle
t = 1.24s Find the ScrollView
t = 2.30s Find the ScrollView (retry 1)
t = 3.34s Find the ScrollView (retry 2)
t = 3.37s Collecting extra data to assist test failure triage
t = 3.37s Requesting snapshot of accessibility hierarchy for app with pid 47389
t = 3.42s Requesting snapshot of accessibility hierarchy for app with pid 47389
t = 3.47s Find: Descendants matching type Other
t = 3.47s Find: Elements matching predicate '"Home screen icons" IN identifiers'
t = 3.47s Find: Descendants matching type Other
t = 3.47s Find: Elements matching predicate '"SBFolderScalingView" IN identifiers'
t = 3.72s Assertion Failure: XXXTestCaseBase.swift:64: Failed to get matching snapshot: No matches found for Elements matching predicate '"SBFolderScalingView" IN identifiers' from input
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)