使用XCUITest打开通用链接(深层链接)

时间:2018-09-04 07:16:44

标签: xcuitest

我想为本地iOS应用程序创建多个测试。更准确地说,我想测试深层链接。但是我不确定如何触发与XCUITest的深层链接,并且我真的看不到launch()launcArgumentshttps://developer.apple.com/documentation/xctest/xcuiapplication)可以如何帮助我。有没有人有机会打开XCUITest的深层链接?

3 个答案:

答案 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)

  1. 将Safari设置为这样的应用

    let safari = XCUIApplication(bundleIdentifier: "com.apple.mobilesafari")

  2. 在野生动物园中打开您的电子邮件

  3. 点击链接
  4. 通常在应用上声明一些元素