在 UITests 中获取 UISwitch 状态/值

Posted

技术标签:

【中文标题】在 UITests 中获取 UISwitch 状态/值【英文标题】:Get UISwitch state/value in UITests 【发布时间】:2017-05-12 13:57:36 【问题描述】:

我正在使用UISwitch,我目前正在编写 UI 测试代码。 问题是我不知道如何在这些测试中获取 Switch 值/状态。 在程序代码中,我可以使用返回truefalsemySwitch.isOn,但在UI Tests 中我不知道如何获取该值。

在英语更正方面提供一点帮助将不胜感激。

谢谢!

【问题讨论】:

【参考方案1】:

试试这个:

let app = XCUIApplication()
let mySwitch = app.switches["mySwitch"]
let isOn = mySwitch.value as! String

当前的UISwitch.isOn 值应反映在上面的isOn 变量中。

【讨论】:

它不起作用:“无法将 'NSTaggedPointerString' (0x1036e2d60) 类型的值转换为 'NSNumber' (0x102cef4a8)” @JosepBernadEspinosa 所以尝试使用字符串:mySwitch.value as! String(请打印结果)。这些 UI 测试 API 可能很棘手 :( @JosepBernadEspinosa 酷!请检查我的最新编辑是否最终为您提供了您应得的Bool :) 不,它没有:“致命错误:在展开可选值时意外发现 nil” @JosepBernadEspinosa 好的,没问题。看起来我们现在被字符串困住了......

以上是关于在 UITests 中获取 UISwitch 状态/值的主要内容,如果未能解决你的问题,请参考以下文章

UITests-如何在 UITests 中获取当前语言

UITests - 如何在UITests中获取当前语言

在 UIPopoverController 中设置 UISwitch 状态

设置 UISwitch 的初始状态

在 TableViewCell 中保持 UISwitch 的状态:Swift

如何保留 UISwitch 状态