如何在紧凑风格的DatePicker中对文本进行断言?

问题描述 投票:0回答:1

我正在我的应用程序中使用 compact 样式渲染 DatePicker,如下所示:

DatePicker("Date Selected", selection: $selectedDate, displayedComponents: [.date])
    .accessibilityIdentifier("DatePicker")
    .datePickerStyle(.compact)

我可以在 UI 测试中点击 DatePicker,在日历样式弹出窗口中选择我想要的日期,然后关闭弹出窗口,如下所示:

// 1. Show the DatePicker popup
application.datePickers["DatePicker"].tap()
        
// 2. Choose a date in the popup
application.datePickers.collectionViews.buttons["Friday, January 14"].tap()
        
// 3. Dismiss the DatePicker popup
application.datePickers["DatePicker"].tap()

(以上所有内容均在this示例应用程序中进行了演示。)

是否可以断言 DatePicker 现在显示我选择的日期?如果是的话,怎么办?

swiftui datepicker
1个回答
0
投票

可以从日期选择器的层次结构中获取第一个按钮:

let label = application.datePickers["DatePicker"].buttons.firstMatch.value as? String
XCTAssertEqual(label, "Jan 14, 2022")

如果您查看元素层次结构,会显示类似的内容(从我的一项测试中获取的输出):

Element subtree:
  →DatePicker, 0x106605ab0, {{244.3, 258.3}, {116.7, 34.3}}, identifier: '@#datePicker1'
    Button, 0x106605bd0, {{244.3, 258.3}, {116.7, 34.3}}, label: 'Date Picker', value: Sep 5, 2023

因此有一个 Button,其 value 属性中包含所选数据。

© www.soinside.com 2019 - 2024. All rights reserved.