当xcode UI测试执行时,关闭设备的wifi



我在xcode ui测试中遇到一个问题。

也就是说,当我的执行还在进行时,在特定条件下

i have to off my wifi

我知道我可以用命令来做

networksetup -setairportpower en0 on

我在osx上写了一个函数:

func runTerminalCommand(args: String...) -> Int32 {
let task = NSTask()
task.launchPath = "/usr/bin/env"
task.arguments = args
task.launch()
task.waitUntilExit()
return task.terminationStatus

}

如果我在osx中使用这个,我可以关闭wifi。

但是我不能在我的ios应用程序中使用这个,或者不能在我的Xcode UI test.

如何关闭我的wifi,而xcode ui测试正在进行中

使用Xcode 9你现在可以在运行UITest时点击控制中心的wifi按钮。

这是一个小的辅助功能,打开控制中心,点击wifi按钮,然后再次关闭它:

func toggleWiFi() {
    let app = XCUIApplication()
    let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
    // open control center
    let coord1 = app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.99))
    let coord2 = app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.1))
    coord1.press(forDuration: 0.1, thenDragTo: coord2)
    let wifiButton = springboard.switches["wifi-button"]
    wifiButton.tap()
    // open your app back again
    springboard.otherElements["com.your.app.identifier"].tap()
}

请记住,运行测试时必须用电缆连接设备;-)

相关内容

  • 没有找到相关文章

最新更新