如何检查 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 相等