我想为本地iOS应用程序创建多个测试。更准确地说,我想测试深层链接。但是我不确定如何触发与XCUITest的深层链接,并且我真的看不到launch()
和launcArguments
(https://developer.apple.com/documentation/xctest/xcuiapplication)可以如何帮助我。有没有人有机会打开XCUITest的深层链接?
答案 0 :(得分:1)
在 iOS 14 中使用 Spotlight 似乎效果很好:
private func open(_ urlString: String) {
XCUIDevice.shared.press(.home)
XCUIApplication(bundleIdentifier: "com.apple.springboard").swipeDown()
let spotlight = XCUIApplication(bundleIdentifier: "com.apple.Spotlight")
spotlight.textFields["SpotlightSearchField"].typeText(urlString)
spotlight.buttons["go"].tap()
}
答案 1 :(得分:0)
我从没有尝试过,但是这个想法浮现在我的脑海。创建一个新的虚拟项目/应用程序,其中应仅包含一些指向您希望原始应用程序打开的URL的链接。在该新应用程序中,编写一些点击链接的UI测试,如下所示:
func testOpeningLinks() {
let app = XCUIApplication()
app.links["Some link text"].tap()
// This is the place where your original app should be opened...
// Find the XCUIApplication object:
let originalApp = XCUIApplication(bundleIdentifier: "original.app.bundle.identifier")
// You should be able to find some views from original app from here, eg. a button:
let button = originalApp.buttons.element
}
仅当您先前在运行UI测试的设备/模拟器上安装了应用程序后,此方法才有效。
答案 2 :(得分:0)
将Safari设置为这样的应用
let safari = XCUIApplication(bundleIdentifier: "com.apple.mobilesafari")
在野生动物园中打开您的电子邮件