使用 XCUITest 打开通用链接(深层链接)
Open universal links (deep links) with XCUITest
我想为本机 iOS 应用程序创建多个测试。更准确地说,我想测试深度 links。但我不确定如何使用 XCUITest 触发深度 link,我也不知道 launch()
和 launcArguments
(https://developer.apple.com/documentation/xctest/xcuiapplication) 对我有何帮助。有人有机会用 XCUITest 深入 link 吗?
我从来没有尝试过这个,但我想到了这个想法。创建一个新的虚拟 project/application,它应该只包含一些 link 指向您希望原始应用程序打开的网址。从那个新应用程序中,编写一些 UI 测试来点击 link,如下所示:
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
}
只有当您之前在 device/simulator 上安装了您的应用程序时,您才可以使用 运行 您的 UI 测试。
像这样将 Safari 设置为应用程序
let safari = XCUIApplication(bundleIdentifier: "com.apple.mobilesafari")
在 Safari 中打开您的电子邮件
- 点击 link
- 通常断言应用上的一些元素
在 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()
}
我想为本机 iOS 应用程序创建多个测试。更准确地说,我想测试深度 links。但我不确定如何使用 XCUITest 触发深度 link,我也不知道 launch()
和 launcArguments
(https://developer.apple.com/documentation/xctest/xcuiapplication) 对我有何帮助。有人有机会用 XCUITest 深入 link 吗?
我从来没有尝试过这个,但我想到了这个想法。创建一个新的虚拟 project/application,它应该只包含一些 link 指向您希望原始应用程序打开的网址。从那个新应用程序中,编写一些 UI 测试来点击 link,如下所示:
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
}
只有当您之前在 device/simulator 上安装了您的应用程序时,您才可以使用 运行 您的 UI 测试。
像这样将 Safari 设置为应用程序
let safari = XCUIApplication(bundleIdentifier: "com.apple.mobilesafari")
在 Safari 中打开您的电子邮件
- 点击 link
- 通常断言应用上的一些元素
在 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()
}