C# - 等待 WebBrowser 完全完成导航和加载 website/webpage

C# - Wait for a WebBrowser to completely finish navigating and loading a website/webpage

我正在尝试通过使用 WebBrowser 在 C# 中创建 Windows 表单应用程序来实现 Web 自动化。我目前有下面的代码可以导航到 Youtube 并在 Youtube 的搜索栏中输入一个字符串。

website.Navigate("www.youtube.com");

website.Document.GetElementById("search").InnerText = "Cavaliers vs Boston highlights";

但是,我在

行中收到 NullReferenceException

website.Document.GetElementById("search").InnerText = "Cavaliers vs Boston highlights";

我尝试在不同的网站上搜索 WebBrowser 如何确定它是否已完全加载您在 Navigate 方法中指定的网站,但到目前为止我还没有找到任何内容。

我在网上找到的是检查 WebBrowser 就绪状态的方法,但在尝试时,它甚至不加载我创建的表单,但仍继续执行 GetElementById 方法。

希望有人能帮我解决这个问题,从早上开始就一直在努力寻找解决方案。

尝试向 WebBrowser 添加事件侦听器。 WebBrowser 有一个 WebBrowser.DocumentCompleted 事件,该事件在网页完全加载时发生。

类似

public frmMain()
{
    website.DocumentCompleted += website_DocumentCompleted;
}


public void website_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{
    website.Document.GetElementById("search").InnerText = "Cavaliers vs Boston highlights"
}

其中 frmMain 是您的表单。它当然也可以添加到其他地方。