如何检查 wkwebview 是不是在 UItest 中完成加载

Posted

技术标签:

【中文标题】如何检查 wkwebview 是不是在 UItest 中完成加载【英文标题】: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 中完成加载?

【问题讨论】:

【参考方案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 秒钟以查看网络是否已加载。希望对老哥有帮助。

【讨论】:

以上是关于如何检查 wkwebview 是不是在 UItest 中完成加载的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 WKWebView 是不是已加载 HTML 字符串

检查 URL 是不是与 UIWebView 的请求或 WKWebView 的 navigationAction.request 相等

在 IOS 的 WKWebView 中检查下拉列表

无法检查 WKWebView

你如何允许 WKWebView 接受重定向 url

当在 WKWebView 中加载链接时,我如何知道外部应用程序是不是会打开?