【问题标题】:iOS UI Test DatepickeriOS UI 测试日期选择器
【发布时间】:2017-10-14 14:57:18
【问题描述】:

我正在为 iOS 应用程序进行 UI 测试。我在找出如何对日期选择器使用自动化测试时遇到了麻烦。现在我一直在尝试查找日期选择器本身,以便我可以更改值。

我已经搜索了很多关于这个问题的线程,但一无所获。

如果有人对此有任何见解,将不胜感激。谢谢!

【问题讨论】:

  • 你试过无障碍标识符吗?
  • 是的。我认为它就像设置一个可访问标签并使用它一样简单 datePickers["myLabel"] 。但是,它仍然很难找到它。

标签: ios swift datepicker uitest


【解决方案1】:

首先,我建议您使用 Xcode 中的“记录 UI 测试”按钮轻松了解如何在 UI 测试中访问 UIDatePicker

对于date模式下的简单UIDatePicker,更改日期很简单:

let datePickers = XCUIApplication().datePickers
datePickers.pickerWheels.element(boundBy: 0).adjust(toPickerWheelValue: "June")
datePickers.pickerWheels.element(boundBy: 1).adjust(toPickerWheelValue: "1")
datePickers.pickerWheels.element(boundBy: 2).adjust(toPickerWheelValue: "2015")

如果 datePicker 连接到 UILabel,那么您可以检查标签中的文本是否已正确更新。

【讨论】:

  • 嗯……真的就是这么简单。非常感谢老兄。
【解决方案2】:

对于支持多种本地化的任何人来说,更简单的方法是

 let dateComponent = Calendar.current.dateComponents([.day, .month, .year], from: Date())
 let formatter = DateFormatter()
 formatter.dateFormat = "MMMM"
 let monthText = formatter.string(from: Date())

 datePicker.pickerWheels[String(dateComponent.year!)].adjust(toPickerWheelValue: "2017")
 datePicker.pickerWheels[monthText].adjust(toPickerWheelValue: "December")
 datePicker.pickerWheels[String(dateComponent.day!)].adjust(toPickerWheelValue: "21")

【讨论】:

  • 谢谢 - 这帮助很大!
  • 这是个好主意,但我想它只有在您没有以编程方式为您的日期选择器设置不同的日期时才会起作用(Date() 是默认设置)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多