iOS UITests - 检测当前运行中是否曾使用过任何XCUIElement

时间:2017-02-28 11:50:11

标签: ios xcode unit-testing testing xcode-ui-testing

在iOS,UITest上工作时,我如何检测是否已经点击了特定的XCUIElement?

例如,

let app = XCUIApplication()
let button1 = app.tabBars.buttons["Home"]
button1.tap()
let button2 = app.tabBars.buttons["Home"].tap()
button2.tap() // Here, I want to detect button2 as already tapped

2 个答案:

答案 0 :(得分:1)

XCUIElement.isEnabledXCUIElement.isSelectedXCUIElement.value可以为您提供有关该元素的状态信息。

如果您希望打开/关闭按钮,请使用UIControl上的启用或选定状态(UIButton继承自UIControl)来设置这些属性并通过XCUIElement从您的测试中访问它们。

如果您希望按钮计算点击的次数,请在每次点击时增加应用中的值并访问测试中的value属性。

答案 1 :(得分:1)

您将 在应用程序的代码中执行此操作,而不是在UI测试目标中执行此操作(来自UI测试)。

有很多方法可以实现这一点,但有一种方法是在点击一次后禁用按钮。如果您希望此功能永久用于测试,那么将此应用程序逻辑包装在#if DEBUG子句中可能是个好主意。另外,我建议通过启动参数从UI测试中打开/关闭此逻辑,可以从UI测试中设置。