如果重置主屏幕布局,Springboard似乎会返回正确的坐标:
设置->常规->重置->重置主屏幕布局。
下面您可以找到对我无忧的解决方案:
func resetHomeScreenLayout(file: String = #file,line: Int = #line) {
settingsApp.launch()
let settingsGeneralCell = settingsApp.cells["General"]
XCTAssertTrue(settingsGeneralCell.waitForExistence(timeout: Constants.smallWaitTime),"The \"General\" cell in Settings was not found. Error in file \(file) at line \(line).")
settingsGeneralCell.tap()
let settingsResetCell = settingsApp.cells["Reset"]
XCTAssertTrue(settingsResetCell.waitForExistence(timeout: Constants.smallWaitTime),"The \"Reset\" cell in Settings was not found. Error in file \(file) at line \(line).")
settingsResetCell.tap()
let settingsResetHomeScreenLayoutLink = settingsApp.staticTexts["Reset Home Screen Layout"]
XCTAssertTrue(settingsResetHomeScreenLayoutLink.waitForExistence(timeout: Constants.smallWaitTime),"The \"Settings\" link \"Reset Home Screen Layout\" was not found. Error in file \(file) at line \(line).")
settingsResetHomeScreenLayoutLink.tap()
let settingsResetHomeScreenPopOverButton = settingsApp.sheets.buttons["Reset Home Screen"]
XCTAssertTrue(settingsResetHomeScreenPopOverButton.waitForExistence(timeout: Constants.smallWaitTime),"The \"Settings\" popover \"Reset Home Screen\" button was not found. Error in file \(file) at line \(line).")
settingsResetHomeScreenPopOverButton.tap()
settingsApp.terminate()
}
在长按应用程序图标之前调用此方法,它应该是可命中的。
确保根据需要向左滑动跳板,以使应用程序图标变得可见。
这至少在iOS 13.1.3上对我有效。
,
这适用于所有操作系统版本(iOS11、12和13)
static let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
func deleteApp() {
XCUIApplication().terminate()
springboard.activate()
let icon = springboard.icons[appName]
if icon.exists {
icon.firstMatch.press(forDuration: 5)
icon.buttons["DeleteButton"].tap()
XCUIDevice.springboard.coordinate(withNormalizedOffset: CGVector(dx: (iconFrame.minX + 3) / springboardFrame.maxX,dy: (iconFrame.minY + 3) / springboardFrame.maxY)).tap()
let deleteConfirmation = springboard.alerts["Delete “\(appName)”?"].buttons["Delete"]
XCTAssertTrue(deleteConfirmation.waitForExistence(timeout: 5),"Delete confirmation not shown")
deleteConfirmation.tap()
}
}
本文链接:https://www.f2er.com/3159615.html