有没有办法获取作为 XCUIElement 的选择器轮的字符串值?

Is there a way to get the string value of a picker wheel that is an 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 所以我可以断言选择器轮是这样说的。

因为我遇到了同样的问题,所以我在这里找到了你的问题。现在我也从这里找到了解决方案:(最后一个答案)。

可以像这样将值转换为字符串:

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

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

希望我能帮到你,因为你的问题也对我有帮助,这让我在这里注册给出答案。