gpt4 book ai didi

c# - 如何在 C# WPF 应用程序中加载网页后获取文本

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:48 24 4
gpt4 key购买 nike

我有一个 WPF 应用程序,它应该在加载后从网页(使用 Angular )读取文本。有没有办法等待网页完全加载然后显示文本?我已经搜索了一段时间的答案,但似乎没有一个对我有用。

提前致谢!

最佳答案

这是来自一个 Winforms 应用程序,我需要为它使用类似的东西并且在 VB 中,但是如果你使用 telerik 转换器可以很容易地转换为 C#。如果您可以分享您的代码,我也许可以为您完善我的答案

Private Property pageready As Boolean = False

Private Sub WaitForPageLoad()
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
While Not pageready
Application.DoEvents()
Dim blocker = WebBrowser1.Document.Window.Frames(0).Frames(3).Frames(4).Document.GetElementsByTagName("head")
End While
pageready = False

End Sub

Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
pageready = True
RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
End If
End Sub

在这个例子中,你可能会看到我正在处理多个框架,但这会等待页面准备好,然后再执行我需要它做的事情

这是C#转换

bool pageready = False;

private void WaitForPageLoad()
{
WebBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PageWaiter);
while (!pageready) {
Application.DoEvents();
dynamic blocker = WebBrowser1.Document.Window.Frames(0).Frames(3).Frames(4).Document.GetElementsByTagName("head");
}
pageready = false;

}

private void PageWaiter(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (WebBrowser1.ReadyState == WebBrowserReadyState.Complete) {
pageready = true;
WebBrowser1.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(PageWaiter);
}
}

关于c# - 如何在 C# WPF 应用程序中加载网页后获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39916985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com