如何在 iOS 上的 UI 测试中测试导航栏按钮是否为 enabled/disabled?
How to test if navigationBar button is enabled/disabled in UI test on iOS?
在我的 iOS 应用程序中,我添加了 UI 测试,我需要在其中检查 navigationBar 按钮是否在不同的时间点 enabled/disabled。
目前我正在使用:
XCUIElement* saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"];
XCTAssertEqual(saveButton.hittable, YES);
然而,这总是returns YES。 .exists 测试 returns 也是。
有人知道如何进行正确的测试吗?
您可以通过 value
属性.
获取实际的 UI 组件
通过它您可以检查它是否已启用。
类似于:
UIBarButtonItem *saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"].value;
XCTAssertTrue(saveButton.enabled);
所以在@InsertWittyName 的帮助下我找到了解决方案:
UIBarButtonItem *saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"];
XCTAssertFalse(saveButton.enabled);
XCUIElement
conforms to XCUIElementAttributes
, which provides @property(readonly, getter=isEnabled) BOOL enabled;
.
所以您可以在 XCUIElement* saveButton
:
上执行此操作
Objective-C
XCTAssertEqual(saveButton.enabled, YES);
Swift
XCTAssertEqual(saveButton.isEnabled, true)
在我的 iOS 应用程序中,我添加了 UI 测试,我需要在其中检查 navigationBar 按钮是否在不同的时间点 enabled/disabled。
目前我正在使用:
XCUIElement* saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"];
XCTAssertEqual(saveButton.hittable, YES);
然而,这总是returns YES。 .exists 测试 returns 也是。
有人知道如何进行正确的测试吗?
您可以通过 value
属性.
通过它您可以检查它是否已启用。
类似于:
UIBarButtonItem *saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"].value;
XCTAssertTrue(saveButton.enabled);
所以在@InsertWittyName 的帮助下我找到了解决方案:
UIBarButtonItem *saveButton = self.app.navigationBars[@"TSSIDAddCardView"].buttons[@"Save"];
XCTAssertFalse(saveButton.enabled);
XCUIElement
conforms to XCUIElementAttributes
, which provides @property(readonly, getter=isEnabled) BOOL enabled;
.
所以您可以在 XCUIElement* saveButton
:
Objective-C
XCTAssertEqual(saveButton.enabled, YES);
Swift
XCTAssertEqual(saveButton.isEnabled, true)