Swift XCUITest:如何在执行 UI 测试时单击 UIImagePickerController() 的默认“选择”按钮?

Posted

技术标签:

【中文标题】Swift XCUITest:如何在执行 UI 测试时单击 UIImagePickerController() 的默认“选择”按钮?【英文标题】:Swift XCUITest: How to click on the default "Choose" button of UIImagePickerController() while performing the UI test? 【发布时间】:2021-09-27 12:22:21 【问题描述】:

我正在编写 UI 测试用例,我应该从图库中选择一张图片并将其显示在我拥有的 ImageView 上。 我成功编写了点击 ImageView 的 UI 测试,然后选择了图像,但无法点击“选择”按钮。

目前,我正在使用此代码

        app.sheets["Profile Picture"].buttons["Open Photos"].tap()
        let selectedImage = app.images["Photo, March 31, 2018, 12:44 AM"]
        selectedImage.tap()
        app.buttons["Choose"].tap() // This is not working!!

我的用户界面如下所示。

【问题讨论】:

您的 debugDescription 显示什么?选择按钮是否存在?我见过这样的事情是不可击中的,而必须点击坐标。 嗨@MikeCollins 是的,存在选择按钮。 XCTAssertTrue(app.buttons["Choose"].exists) - 这很好用。 那么我怀疑以下 Roman 的回答可能会解决您的问题 :) 【参考方案1】:

app.buttons["Choose"].tapUnhittable() 会起作用吗?

    func tapUnhittable() 
        XCTContext.runActivity(named: "Tap \(self) by coordinate")  _ in
            coordinate(withNormalizedOffset: CGVector(dx: 0.0, dy: 0.0)).tap()
        
    

添加此扩展或导入https://github.com/devexperts/screenobject

【讨论】:

以上是关于Swift XCUITest:如何在执行 UI 测试时单击 UIImagePickerController() 的默认“选择”按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 swift xcuitest 从 pdf 文件中读取数据

由于应用重启,XCUITest 需要运行两次才能成功

如何使用 Swift XCUITest 添加摇晃手势? [关闭]

如何使用 XCUITest 查询 SwiftUI 表格单元格

如何在 Swift Quick Nimble 中执行 beforeAll

XCUITest 如何关闭日期选择器弹出框