C# - 等待WebBrowser完全导航并加载网站/网页

时间:2018-05-29 05:36:37

标签: c# browser-automation

我试图通过使用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 ="骑士vs波士顿亮点&#34 ;;

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

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

希望有人可以帮我解决这个问题,从早上起就试图找到解决方案。

1 个答案:

答案 0 :(得分:1)

尝试向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是你的表格。它当然也可以添加到其他地方。