iOS UI 测试日期选择器

Posted

技术标签:

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

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

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

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

【问题讨论】:

你试过无障碍标识符吗? 是的。我认为它就像设置一个可访问标签并使用它一样简单 datePickers["myLabel"] 。但是,它仍然很难找到它。 【参考方案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() 是默认设置)

以上是关于iOS UI 测试日期选择器的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 xamarin android ui 测试自动化中使用日期选择器

赛普拉斯测试 Material-UI 日期选择器不适用于 Github 操作

模型和日期选择器之间的角度 UI 引导日期不匹配

UI 日期选择器按钮不起作用

angular-ui-bootstrap 日期选择器和屏蔽输入