首页 > 解决方案 > 有没有办法获取作为 XCUIElement 的选择轮的字符串值?

问题描述

我知道这存在: 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所以我可以断言选择轮是这么说的。

标签: swiftxcodeios-ui-automation

解决方案


因为我遇到了同样的问题,所以我在这里找到了你的问题。现在我也从这里找到了一个解决方案: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

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

希望我能提供帮助,因为您的问题也帮助了我,这让我在这里注册以给出答案。


推荐阅读