1) 我在 Xcode 7.3 中使用 swift 测试 UI,我同时使用 .hittable 和 .exists 来测试标签是否隐藏并且它们都可以工作。我测试“真”和“假”以确保任何一种方式都与结果一致。
我有一个标签,其静态文本为“Track Info”,并设置为在首次加载应用程序时隐藏,然后按一个按钮显示标签,这是显示标签后的结果。
// 测试失败
let trackInfoLabel = app.staticTexts["Track info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// 测试通过
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
// 测试通过
let trackInfoLabel = app.staticTexts["Track Info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// 测试失败
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
当我按下按钮隐藏标签时,所有结果都相反。这确认了两个属性(可命中和存在)都适用于 label.hidden 设置。
2) 另一种判断元素是否隐藏的方法是 element.frame.size.width == 0 || element.frame.size.height == 0