关闭警报 XCUITest
Dismissing alert XCUITest
我正在尝试消除 XC 上的警报UI测试套件,我目前正在使用
app.alerts.buttons["OK"].tap()
使用此选项可解除警报,但应用程序会继续尝试点击按钮,然后失败并显示错误消息“UI 测试失败 - 未找到警报的匹配项"
这是控制台输出
t = 0.00s Start Test at 2016-11-03 14:07:30.827
t = 0.00s Set Up
t = 0.00s Launch uk.co.myapp
t = 4.89s Waiting for accessibility to load
t = 12.55s Wait for app to idle
t = 18.46s Snapshot accessibility hierarchy for uk.co.myapp
t = 19.24s Find: Descendants matching type Button
t = 19.25s Find: Elements matching predicate '"Enable notifications" IN identifiers'
t = 19.26s Tap "Enable notifications" Button
t = 19.26s Wait for app to idle
t = 19.40s Find the "Enable notifications" Button
t = 19.40s Snapshot accessibility hierarchy for uk.co.myapp
t = 27.43s Find: Descendants matching type Button
t = 27.48s Find: Elements matching predicate '"Enable notifications" IN identifiers'
t = 27.52s Wait for app to idle
t = 27.93s Synthesize event
t = 28.31s Wait for app to idle
t = 33.94s Tap "OK" Button
t = 33.94s Wait for app to idle
t = 35.19s Find the "OK" Button
t = 35.20s Snapshot accessibility hierarchy for uk.co.myapp
t = 39.68s Find: Descendants matching type Alert
t = 39.69s Wait for app to idle
t = 39.82s App event loop idle notification not received, will attempt to continue.
t = 39.82s App animations complete notification not received, will attempt to continue.
t = 39.83s Check for UI interruption: Descendants matching type Alert
t = 39.83s Snapshot accessibility hierarchy for com.apple.springboard
t = 39.93s Find: Descendants matching type Alert
t = 39.94s Find the "“VoucherCodes” Would Like to Send You Notifications" Alert
t = 39.94s Use cached accessibility hierarchy for com.apple.springboard
t = 39.97s Find: Descendants matching type Alert
t = 39.97s Find: Identity Binding
t = 39.98s Use cached accessibility hierarchy for com.apple.springboard
t = 39.99s Find: Descendants matching type Alert
t = 40.00s Find: Identity Binding
t = 40.01s Find: Descendants matching type Button
t = 40.01s Find: Elements matching predicate 'userTestingAttributes CONTAINS "cancel-button"'
t = 40.01s Get number of matches for: Descendants matching type Button
t = 40.13s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.23s Find: Descendants matching type Alert
t = 40.23s Find: Identity Binding
t = 40.24s Find: Descendants matching type Button
t = 40.24s Get all elements bound by accessibility element for: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.34s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.43s Find: Descendants matching type Alert
t = 40.45s Find: Identity Binding
t = 40.46s Find: Descendants matching type Button
t = 40.46s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.47s Use cached accessibility hierarchy for com.apple.springboard
t = 40.49s Find: Descendants matching type Alert
t = 40.49s Find: Identity Binding
t = 40.50s Find: Descendants matching type Button
t = 40.50s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.50s Find: Identity Binding
t = 40.50s Tap "OK" Button
t = 40.50s Wait for app to idle
t = 40.61s App event loop idle notification not received, will attempt to continue.
t = 40.61s App animations complete notification not received, will attempt to continue.
t = 40.62s Find the "OK" Button
t = 40.62s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.70s Find: Descendants matching type Alert
t = 40.71s Find: Identity Binding
t = 40.71s Find: Descendants matching type Button
t = 40.71s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.72s Find: Identity Binding
t = 40.72s Wait for app to idle
t = 40.84s App event loop idle notification not received, will attempt to continue.
t = 40.84s App animations complete notification not received, will attempt to continue.
t = 40.84s Synthesize event
t = 41.17s Wait for app to idle
t = 41.43s App event loop idle notification not received, will attempt to continue.
t = 41.43s App animations complete notification not received, will attempt to continue.
t = 41.44s Snapshot accessibility hierarchy for com.apple.springboard
t = 41.52s Find: Descendants matching type Alert
t = 41.53s Find: Identity Binding
t = 41.54s Wait for view controller view-did-disappear
t = 42.21s Snapshot accessibility hierarchy for uk.co.myapp
t = 45.68s Find: Descendants matching type Alert
t = 45.69s Wait for app to idle
t = 46.82s Find the "OK" Button (retry 1)
t = 46.82s Snapshot accessibility hierarchy for
我的应用程序
t = 50.18s 查找:匹配类型警报的后代
t = 50.19s 等待应用空闲
t = 51.38s 找到 "OK" 按钮(重试 2)
t = 51.38s uk.myapp 的快照可访问性层次结构
t = 55.06s 查找:匹配类型警报的后代
t = 55.06s 等待应用空闲
t = 55.44s 断言失败:signUpSetUp.swift:21: UI 测试失败 - 未找到警报的匹配项
查询输入为 {(
应用程序 0x7fb51cf80840:{{0.0, 0.0}, {375.0, 667.0}}, 标签
有没有更好的方法解决这个问题?或者有没有解决我出错的地方?困惑了一段时间!
XCTest 中有 a method 用于警报处理:
addUIInterruptionMonitorWithDescription("iTunesStoreAlert") { alert in
alert.buttons["OK"].tap()
return true
}
您可以将其放在测试开始时.. 或者您应该收到警报的地方
我改进@user3271402的回答
addUIInterruptionMonitorWithDescription("alert description") { (alert) -> Bool in
let alertButton = alert.buttons["OK"]
if alertButton.exists {
alertButton.tap()
return true
}
return false
}
app.tap()
如果警报存在,只需点击。如果警报没有发生 return false,然后点击应用程序并结束。
我正在尝试消除 XC 上的警报UI测试套件,我目前正在使用
app.alerts.buttons["OK"].tap()
使用此选项可解除警报,但应用程序会继续尝试点击按钮,然后失败并显示错误消息“UI 测试失败 - 未找到警报的匹配项"
这是控制台输出
t = 0.00s Start Test at 2016-11-03 14:07:30.827
t = 0.00s Set Up
t = 0.00s Launch uk.co.myapp
t = 4.89s Waiting for accessibility to load
t = 12.55s Wait for app to idle
t = 18.46s Snapshot accessibility hierarchy for uk.co.myapp
t = 19.24s Find: Descendants matching type Button
t = 19.25s Find: Elements matching predicate '"Enable notifications" IN identifiers'
t = 19.26s Tap "Enable notifications" Button
t = 19.26s Wait for app to idle
t = 19.40s Find the "Enable notifications" Button
t = 19.40s Snapshot accessibility hierarchy for uk.co.myapp
t = 27.43s Find: Descendants matching type Button
t = 27.48s Find: Elements matching predicate '"Enable notifications" IN identifiers'
t = 27.52s Wait for app to idle
t = 27.93s Synthesize event
t = 28.31s Wait for app to idle
t = 33.94s Tap "OK" Button
t = 33.94s Wait for app to idle
t = 35.19s Find the "OK" Button
t = 35.20s Snapshot accessibility hierarchy for uk.co.myapp
t = 39.68s Find: Descendants matching type Alert
t = 39.69s Wait for app to idle
t = 39.82s App event loop idle notification not received, will attempt to continue.
t = 39.82s App animations complete notification not received, will attempt to continue.
t = 39.83s Check for UI interruption: Descendants matching type Alert
t = 39.83s Snapshot accessibility hierarchy for com.apple.springboard
t = 39.93s Find: Descendants matching type Alert
t = 39.94s Find the "“VoucherCodes” Would Like to Send You Notifications" Alert
t = 39.94s Use cached accessibility hierarchy for com.apple.springboard
t = 39.97s Find: Descendants matching type Alert
t = 39.97s Find: Identity Binding
t = 39.98s Use cached accessibility hierarchy for com.apple.springboard
t = 39.99s Find: Descendants matching type Alert
t = 40.00s Find: Identity Binding
t = 40.01s Find: Descendants matching type Button
t = 40.01s Find: Elements matching predicate 'userTestingAttributes CONTAINS "cancel-button"'
t = 40.01s Get number of matches for: Descendants matching type Button
t = 40.13s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.23s Find: Descendants matching type Alert
t = 40.23s Find: Identity Binding
t = 40.24s Find: Descendants matching type Button
t = 40.24s Get all elements bound by accessibility element for: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.34s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.43s Find: Descendants matching type Alert
t = 40.45s Find: Identity Binding
t = 40.46s Find: Descendants matching type Button
t = 40.46s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.47s Use cached accessibility hierarchy for com.apple.springboard
t = 40.49s Find: Descendants matching type Alert
t = 40.49s Find: Identity Binding
t = 40.50s Find: Descendants matching type Button
t = 40.50s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.50s Find: Identity Binding
t = 40.50s Tap "OK" Button
t = 40.50s Wait for app to idle
t = 40.61s App event loop idle notification not received, will attempt to continue.
t = 40.61s App animations complete notification not received, will attempt to continue.
t = 40.62s Find the "OK" Button
t = 40.62s Snapshot accessibility hierarchy for com.apple.springboard
t = 40.70s Find: Descendants matching type Alert
t = 40.71s Find: Identity Binding
t = 40.71s Find: Descendants matching type Button
t = 40.71s Find: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
t = 40.72s Find: Identity Binding
t = 40.72s Wait for app to idle
t = 40.84s App event loop idle notification not received, will attempt to continue.
t = 40.84s App animations complete notification not received, will attempt to continue.
t = 40.84s Synthesize event
t = 41.17s Wait for app to idle
t = 41.43s App event loop idle notification not received, will attempt to continue.
t = 41.43s App animations complete notification not received, will attempt to continue.
t = 41.44s Snapshot accessibility hierarchy for com.apple.springboard
t = 41.52s Find: Descendants matching type Alert
t = 41.53s Find: Identity Binding
t = 41.54s Wait for view controller view-did-disappear
t = 42.21s Snapshot accessibility hierarchy for uk.co.myapp
t = 45.68s Find: Descendants matching type Alert
t = 45.69s Wait for app to idle
t = 46.82s Find the "OK" Button (retry 1)
t = 46.82s Snapshot accessibility hierarchy for
我的应用程序 t = 50.18s 查找:匹配类型警报的后代 t = 50.19s 等待应用空闲 t = 51.38s 找到 "OK" 按钮(重试 2) t = 51.38s uk.myapp 的快照可访问性层次结构 t = 55.06s 查找:匹配类型警报的后代 t = 55.06s 等待应用空闲 t = 55.44s 断言失败:signUpSetUp.swift:21: UI 测试失败 - 未找到警报的匹配项 查询输入为 {( 应用程序 0x7fb51cf80840:{{0.0, 0.0}, {375.0, 667.0}}, 标签
有没有更好的方法解决这个问题?或者有没有解决我出错的地方?困惑了一段时间!
XCTest 中有 a method 用于警报处理:
addUIInterruptionMonitorWithDescription("iTunesStoreAlert") { alert in
alert.buttons["OK"].tap()
return true
}
您可以将其放在测试开始时.. 或者您应该收到警报的地方
我改进@user3271402的回答
addUIInterruptionMonitorWithDescription("alert description") { (alert) -> Bool in
let alertButton = alert.buttons["OK"]
if alertButton.exists {
alertButton.tap()
return true
}
return false
}
app.tap()
如果警报存在,只需点击。如果警报没有发生 return false,然后点击应用程序并结束。