有没有一种方法可以获取作为XCUIElement的拾取轮的字符串值?

时间:2019-06-05 21:24:38

标签: swift xcode ios-ui-automation

我知道这存在: func adjust(toPickerWheelValue pickerWheelValue: String),但我没有尝试调整该值。我想确保该值是移动后期望的字符串。

我尝试在拾取轮元素上进行.value的操作,但这给了我一个Any类型,其中包含了我需要的字符串,以及一些其他内容。

让我们说屏幕的打印输出是这样的:

Attributes: Application, pid: 64445, label: ‘App’
Element subtree:
 →Application, 0x60000263a150, pid: 64445, label: ‘App’
    Window (Main), 0x600002639110, {{0.0, 0.0}, {320.0, 568.0}}
      Other, 0x6000026396c0, {{0.0, 0.0}, {320.0, 568.0}}
        Picker, 0x600002639040, {{0.0, 352.0}, {320.0, 216.0}}
            PickerWheel, 0x600002639520, {{0.0, 314.5}, {103.0, 291.0}}, value: 0 hours
            PickerWheel, 0x600002639380, {{108.0, 314.5}, {103.0, 291.0}}, value: 13 min

我将在控制台中打印出app.pickerWheels.element(boundBy: 0).value并获取

Optional<Any>
    - some : 0 hours

我明确只希望使用0 hours,所以我可以断言挑纸器是这样说的。

1 个答案:

答案 0 :(得分:0)

由于我遇到了同样的问题,因此我在这里找到了您的问题。现在我也从这里找到了一个解决方案:How to select a picker view item in an iOS UI test in Xcode?(最后一个答案)。

可以像这样将值强制转换为String:

let value = app.pickerWheels.element(boundBy: 0).value as! String

这给了我正确的价值,可以继续。

希望我能够提供帮助,因为您的问题也对我有所帮助,这使我在这里注册以给出答案。