【问题标题】:How to check if wkwebview finished loading in UItest如何检查 wkwebview 是否在 UItest 中完成加载
【发布时间】:2020-09-14 09:16:37
【问题描述】:

我想在加载 html 文件时截取应用程序的屏幕截图。但是有时 wkwebview 需要很长时间才能加载 html 文件。

目前我必须使用 sleep(5) 来等待 wkwebview 完成加载。

//uitest.swift

sleep(5)
takeScreenshot()

有什么方法可以检查 wkwebview 是否在 UItest 中完成加载?

【问题讨论】:

    标签: ios wkwebview uitest webviewdidfinishload


    【解决方案1】:

    我在试图弄清楚如何制作它时也遇到了一些问题,所以我决定使用这个解决方法。在 wkwebview didfinishload 中,如果您有任何变量,您可以检查它是否存在或其值。如果那里没有任何变量,则必须在全局范围内创建它,对吗?例如,如果我们在 wkwebview 结束加载时有此代码:

    func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
       myTopLabel.text = "Content Loaded"
       print("loaded") 
    }
    

    'myTopLabel' 是一个 UILabel,我用它来显示我的 web 的状态,所以我要做的就是在 UITest 中执行这个命令:

    let nextGameLabel = self.app.staticTexts["Content Loaded"]
    app.buttons["Reload Web"].tap()
    XCTAssert(nextGameLabel.waitForExistence(timeout: 5))
    

    所以当我按下应用程序按钮时,UITest 会等待 5 秒钟以查看网络是否已加载。希望对老哥有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      相关资源
      最近更新 更多