我正在尝试对我的iOS Swift项目中的Eureka表单构建的表单进行UITest。
问题是我的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
嗯,框架完全指定了问题,您应该使用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")
}
}