如何在 XCUITests 中等待复制/粘贴提示消失?

问题描述

在我的 UI 测试中,我需要等待复制/粘贴通知消失。在大多数测试案例中,通知看起来:

Copy/paste notification

我试着这样等待:

    func waitForPasteboardInfodissappear(file: StaticString = #file,line: UInt = #line) {
        let elements = [
            "Pola pasted from PolaUITests-Runner","CoreSimulatorBridge pasted from Pola",].map { app.staticTexts[$0] }
        if !elements.waitFordisappear(timeout: 10) {
            XCTFail("Pasteboard info still visible",file: file,line: line)
        }

    }
extension XCUIElement {
    func waitFordisappear(timeout: TimeInterval) -> Bool {
        let result = XCTWaiter().wait(for: [waitFordisappearExpectation()],timeout: timeout)
        return result == .completed
    }

    func waitFordisappearExpectation() -> XCTestExpectation {
        let predicate = nspredicate(format: "exists == false")
        return XCTnspredicateExpectation(predicate: predicate,object: self)
    }
}

extension Array where Element == XCUIElement {
    func waitFordisappear(timeout: TimeInterval) -> Bool {
        let expectations = map { $0.waitFordisappearExpectation() }
        let result = XCTWaiter().wait(for: expectations,timeout: timeout)
        return result == .completed
    }
}

大多数情况下都能用,但我使用快照测试来验证测试,有时提示仍然可见(没有文字

Copy/paste notification without text

有什么办法可以检查这个提示是否仍然在屏幕上可见?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...