我在 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 测试。
在进行 xcode ui 测试时如何关闭我的 wifi?
Best Answer-推荐答案 strong>
使用 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()
}
请记住,运行测试时您必须使用电缆连接设备;-)
关于ios - 在进行 xcode ui 测试执行时从设备关闭 wifi,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39960490/
|