XCTest 如何在 OS 设置中切换通知开关?
XCTest how to toggle Notification Switch in OS Settings?
我正在尝试为我正在测试的应用程序启用/禁用 OS 通知开关,但我无法做到。我已经到达设置 > 通知 > 应用程序屏幕本身,但开关似乎没有我可以与之交互的按钮。
这是我得到的结果:
let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
settingsApp.launch()
settingsApp.tables.cells.staticTexts["Notifications"].tap()
settingsApp.tables.cells.staticTexts["app_name"].tap()
到目前为止一切顺利,但此处返回的按钮列表如下:
Failed to get matching snapshot: No matches found for Element at index 7 from input {(
Button,
Button, identifier: 'Lock Screen', Selected,
Button, identifier: 'Notification Center',
Button, identifier: 'Banners',
Button, Disabled,
Button, Disabled
)}
我试过 settingsApp.buttons.element(boundBy: 0).tap()
但最终变成了后退按钮,而 boundBy: 1 最终变成了 'Lock Screen' 按钮。
'Allow Notifications' 开关是否不可点击? :)
Allow Notifications 是一个 switch
,它将响应 tap()
。以下应该可以解决问题:
settingsApp.tables.cells.switches["Allow Notifications"].tap()
我通常将开关点击包装在一个切换功能中,该功能采用预期状态,并且仅在尚未处于该状态时才点击。
我正在尝试为我正在测试的应用程序启用/禁用 OS 通知开关,但我无法做到。我已经到达设置 > 通知 > 应用程序屏幕本身,但开关似乎没有我可以与之交互的按钮。
这是我得到的结果:
let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
settingsApp.launch()
settingsApp.tables.cells.staticTexts["Notifications"].tap()
settingsApp.tables.cells.staticTexts["app_name"].tap()
到目前为止一切顺利,但此处返回的按钮列表如下:
Failed to get matching snapshot: No matches found for Element at index 7 from input {(
Button,
Button, identifier: 'Lock Screen', Selected,
Button, identifier: 'Notification Center',
Button, identifier: 'Banners',
Button, Disabled,
Button, Disabled
)}
我试过 settingsApp.buttons.element(boundBy: 0).tap()
但最终变成了后退按钮,而 boundBy: 1 最终变成了 'Lock Screen' 按钮。
'Allow Notifications' 开关是否不可点击? :)
Allow Notifications 是一个 switch
,它将响应 tap()
。以下应该可以解决问题:
settingsApp.tables.cells.switches["Allow Notifications"].tap()
我通常将开关点击包装在一个切换功能中,该功能采用预期状态,并且仅在尚未处于该状态时才点击。