您好亲爱的开发人员,
我目前因应用内应用商店评级(SKStoreReviewController)出现问题而陷入困境。在这种情况下,我有一个带有按钮的屏幕“ FirstScreen”。当我点击它时,我将转到下一个屏幕“ SecondScreen”,并弹出一个针对AppStore评级的应用内警报。
我正在尝试为我的UITest找到解决方案,以关闭此警报。我尝试了许多解决方案,但我正在寻找一种不依赖于字符串的解决方案(我不想本地化此Alert的内容):
override func setUp() {
app = XCUIApplication()
app.launch()
addUIInterruptionMonitor(withDescription: "System Dialog") { (alert) -> Bool in
let allowButton = alert.buttons.element(boundBy: 1)
if allowButton.exists {
allowButton.tap()
}
}
}
我也想添加一个交互(“ app.swipeUp()”)来触发“ SecondScreen”来触发此处理程序。
我也尝试了另一种解决方案,因为我知道何时会触发此警报:
let dismissButton = XCUIApplication(bundleIdentifier: "com.apple.springboard").buttons.element(boundBy: 1)
if dismissButton.exists {
dismissButton.tap()
}
[没人工作,我仍然被困住:(是否有人找到解决方案以消除此警报?
谢谢
向上滑动不起作用,但具有讽刺意味的是,向向下]滑动>。这是一个非常简单的示例
import UIKit import StoreKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { SKStoreReviewController.requestReview() } } }
import XCTest class UITests: XCTestCase { override func setUp() { continueAfterFailure = false } func test() { let app = XCUIApplication() app.launch() sleep(5) app.swipeDown() sleep(3) } }