XCUITest - 如何在应用程序运行时禁用 Wi Fi?

Posted

技术标签:

【中文标题】XCUITest - 如何在应用程序运行时禁用 Wi Fi?【英文标题】:XCUITest - How to disable Wi Fi while app is running? 【发布时间】:2018-03-06 09:12:16 【问题描述】:

我想在运行 XCUITest 时自动化 ios 应用程序的行为。手动执行测试时,我关闭了 wi fi 适配器。我如何使用 Xcode UI 测试来做到这一点?

谢谢

附言我发现我们可以使用下面的命令来禁用 wi fi。但要做到这一点,我需要将我的应用程序发送到后台。我需要在不将当前应用发送到后台的情况下执行此操作。

let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")

settingsApp.launch()

settingsApp.tables.cells["Airplane Mode"].tap()

【问题讨论】:

【参考方案1】:

之后您可以使用 XCUIApplication 上的新 activate() 方法重新激活您的应用。它会在不重新启动的情况下恢复您的应用。

    let app = XCUIApplication()
    app.launch()

    let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
    settingsApp.launch()
    settingsApp.tables.cells["Airplane Mode"].tap()

    // Relaunch app without restarting it
    app.activate()

【讨论】:

另外,如果您想知道飞行模式是否在您进入设置之前启用,请尝试let isAirplaneMode = XCUIApplication(bundleIdentifier: "com.apple.springboard").statusBars.images["Airplane mode on"]

以上是关于XCUITest - 如何在应用程序运行时禁用 Wi Fi?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Test suit XCUI 中禁用某些测试用例?

由于应用重启,XCUITest 需要运行两次才能成功

如何使 UIControl 在 XCUITest 中显示为按钮?

用于 XCUITest 的 iOS 模拟器中的强制软件键盘

如何从 XCUITest 读取 Json 文件?

Xcode 11 Export for Localization 不起作用,Include Screenshots 功能被禁用,并且在测试日志中找不到 XCUITest 屏幕截图附件