- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个选择器 View ,其中包含一个在 Interface Builder 中创建的日期选择器。在属性检查器中选择:模式“日期和时间”。在我的 UI 测试中,我需要从中选择一个特定的日期和时间。我正在使用 Xcode 7 引入的 XCTest UI 测试 API。
我的本地化美国日期和时间选择器测试代码如下所示:
app.tables.pickerWheels.elementBoundByIndex(0).adjustToPickerWheelValue("Jun 29")
app.tables.pickerWheels.elementBoundByIndex(1).adjustToPickerWheelValue("12")
app.tables.pickerWheels.elementBoundByIndex(2).adjustToPickerWheelValue("10")
app.tables.pickerWheels.elementBoundByIndex(3).adjustToPickerWheelValue("PM")
这将完美运行!
我的本地化德语日期和时间选择器测试代码如下所示:
app.tables.pickerWheels.elementBoundByIndex(0).adjustToPickerWheelValue("29. Juni")
app.tables.pickerWheels.elementBoundByIndex(1).adjustToPickerWheelValue("07")
app.tables.pickerWheels.elementBoundByIndex(2).adjustToPickerWheelValue("10")
在这种情况下,我遇到了以下异常:
断言失败:UI 测试失败 - 内部错误:无法在可能的值 11.Mai、12.Mai、13.Mai、14.Mai、15 中找到当前值 '(null)' .麦16.麦17.麦18.麦19.麦20.麦21.麦22.麦23.麦24.麦25.麦26.麦27.麦,28.Mai,29.Mai,30.Mai,31.Mai,1.Juni,2.Juni,3.Juni,4.Juni,5.Juni,6.Juni,7.Juni,8.Juni,9 .Juni,10.Juni,11.Juni,12.Juni,13.Juni,14.Juni,15.Juni,16.Juni,17.Juni,18.Juni,19.Juni,20.Juni,21.Juni , 22. Juni, 23. Juni, 24. Juni, 25. Juni, 26. Juni, 27. Juni, 28. Juni, 29. Juni, 30. Juni, 1. Juli, 2. Juli, 3. Juli, 4. Juli, 5. Juli, 6. Juli, 7. Juli, 8. Juli, 9. Juli, 10. Juli, 11.巨力 12.巨力 13.巨力 14.巨力 15.巨力 16.巨力 17.巨力 18.巨力 19.巨力 20.巨力 21.巨力 22.巨力 23.巨力Juli 24. Juli 25. Juli 26. Juli 27. Juli 28. Juli 29. Juli 30. Juli 31. Juli 1. Aug. 2. Aug., 3. Aug., 4 . 八月, 5. 八月, 6. 八月, 7. 八月, 8. 八月, 9. 八月, 10. 八月, 11. 八月, 12. 八月, 13. 八月, 14 . 8 月 15 日 8 月 16 日 8 月 17 日 8 月 18 日 Picker Wheel "Heute"PickerWheel
我推测,'(null)' 表示没有为 UITest 查询设置搜索字符串:
app.tables.pickerWheels.elementBoundByIndex(0).adjustToPickerWheelValue("29. Juni")
这就是引发此异常的原因。
仅当模拟器首选项“General/Language & Region”未设置为默认“United States”时,才会出现所描述的问题。
当我在模拟器中切换到其他语言设置时,我使用上面自己的 swift 代码以及以下帖子中引用的 Objective-C 代码得到了相同的结果:
How to select a picker view item in an iOS UI test in Xcode?
我绝对必须使用本地化的日期和时间选择器来执行我的 UITesting!有没有人知道这里出了什么问题,是否有解决方案?
最佳答案
可能为时已晚,但这帮助了我
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")
关于ios - 如何在 iOS UItest 中选择本地化的日期选择器项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38111613/
我是一名优秀的程序员,十分优秀!