UITest DateTimePicker

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

我正在尝试对我的iOS Swift项目中的Eureka表单构建的表单进行UITest。

以下是拾纸轮的外观。它在尤里卡上的TimeRow()enter image description here

问题是我的UITest无法移动DateField。它只能移动小时和分钟字段。这是UITtest代码

func testSetTime() {
        app.tables.cells.containing(.staticText, identifier: "Departure Time").element.tap()

        // unable to get this to work.
        app.datePickers.pickerWheels.element(boundBy: 0).adjust(toPickerWheelValue: "May 14")

        // these lines work perfectly.
        app.datePickers.pickerWheels.element(boundBy: 1).adjust(toPickerWheelValue: "01")
        app.datePickers.pickerWheels.element(boundBy: 2).adjust(toPickerWheelValue: "00")
        app.buttons["Done"].firstMatch.tap()
}

运行后的错误如下。

[无法在3月28日,3月29日,3月30日,3月31日,4月1日,4月2日,4月3日,4月4日,4月5日,4月6日,4月7日,4月8日, 4月9日,4月10日,4月11日,4月12日,4月13日,4月14日,4月15日,4月16日,4月18日,4月19日,4月19日,4月20日,4月21日,4月22日,4月23日,4月24日,4月25日,4月26日,4月27日,4月28日,4月29日,4月30日,5月1日,5月2日,5月3日,5月5日,5月5日,5月6日,5月7日,5月8日,5月9日,5月10日,5月11日5月13日,5月14日,5月15日,5月16日,5月17日,5月18日,5月19日,5月21日,5月22日,5月23日,5月24日,5月25日,5月26日,5月27日,5月28日, 5月29日,5月30日,5月31日,6月1日,6月2日,6月3日,6月4日,6月5日,6月6日,6月7日,6月8日,6月9日,6月10日,6月11日,6月12日,6月13日1月15日,6月16日,6月17日,6月18日,6月19日,6月20日,6月21日,6月22日,6月23日,6月24日,6月25日,6月26日,6月27日,6月28日,6月29日,6月30日1 7月2日,7月3日,7月3日,7月4日,7月5日,为拾取轮“ Today” PickerWheel

xcode-ui-testing eureka-forms
1个回答
0
投票

嗯,框架完全指定了问题,您应该使用17 May而不是May 17

app.pickerWheels.firstMatch.adjust(toPickerWheelValue: "17 May")

UPD

我已经尝试在Calendar应用(Xcode 11.4)中与相同的选择器进行交互

效果很好

class siguiente: XCTestCase {

    func testExample() {
        // Given 
        let app = XCTApps.calendar.app
        app.launch()
        app.buttons["Add"].tap()
        app.staticTexts["Starts"].tap()

        // When
        let dateWheel = app.pickerWheels.firstMatch
        app.pickerWheels.firstMatch.adjust(toPickerWheelValue: "May 21")

        // Then
        XCTAssertEqual(dateWheel.value as? String, "Thu, May 21")
    }
}

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