在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
答案 0 :(得分:1)
XCUIElement.isEnabled
,XCUIElement.isSelected
和XCUIElement.value
可以为您提供有关该元素的状态信息。
如果您希望打开/关闭按钮,请使用UIControl上的启用或选定状态(UIButton继承自UIControl)来设置这些属性并通过XCUIElement从您的测试中访问它们。
如果您希望按钮计算点击的次数,请在每次点击时增加应用中的值并访问测试中的value
属性。
答案 1 :(得分:1)
您将 在应用程序的代码中执行此操作,而不是在UI测试目标中执行此操作(来自UI测试)。
有很多方法可以实现这一点,但有一种方法是在点击一次后禁用按钮。如果您希望此功能永久用于测试,那么将此应用程序逻辑包装在#if DEBUG
子句中可能是个好主意。另外,我建议通过启动参数从UI测试中打开/关闭此逻辑,可以从UI测试中设置。