C # WPF - Warten auf das Laden der Seite

Ich habe mehrere Threads auf StackOverflow zu diesem Thema gesehen, jedoch scheint keiner von ihnen eine Antwort zu liefern.

Ich habe eine Schaltfläche, die beim Klicken eine unsichtbare Webseite öffnet, zu einer URL navigiert, Informationen in ein Feld eingibt, eine Schaltfläche drückt und dann auf dem Bildschirm nach Informationen sucht.

Die Knochen meines Codes im Grunde in den Klick:

WebBrowser wb = new WebBrowser;
wb.Visibility = System.Windows.Visibility.Hidden;
wb.Navigate("http://somepage.com");

Und hier wird es schwierig.

Ich suche einen Weg zudafür sorgen dass die Seite geladen wird, bevor versucht wird, Daten einzugeben oder den Bildschirm zu verkratzen. Ich habe mehrere Threads gesehen, über die gesprochen wirdNavigated, IsLoaded, LoadCompleted ebenso gut wieBackgroundWork Zeug, aber ich kann keines davon zum Laufen bringen.

Welche Option eignet sich am besten, um festzustellen, ob die Seite vollständig geladen wurde? Wie würden Sie die gewählte Methode zum Laufen bringen?

Ich kann die Daten auch nicht vom Bildschirm abrufen, da WPF nicht dasselbe verwendetGetElementByID.

Bearbeiten:

Nach dem Kommentar unten sind hier die Fehler, auf die ich stoße:

Zuerst navigiert, sobald auch die Seite navigiert wurde, und nicht unbedingt warten, bis alle Objekte geladen sind. Dies funktioniert wie vorgesehen, kann aber nicht für meine Zwecke verwendet werden.

IsLoaded gibt nie wahr zurück

private void GetData_Click(object sender, RoutedEventArgs e)
{
  int x=0;
  HTMLDocument doc;

  wb = new WebBrowser();
  wb.Visibility = System.Windows.Visibility.Visible;
  wb.Navigate("somesite.com");

  doc = wb.Document as mshtml.HTMLDocument;

  while(!wb.IsLoaded)
  {
    //Wait
  }

  doc.getElementById("txt_One").innerText = "It Worked";

}

Setzt es in eine Endlosschleife alswb scheint nie zu laden.

Dies ist die Version mit LoadCompleted

Das Ereignis 'System.Windows.Controls.WebBrowser.LoadCompleted' kann nur links von + = oder - = angezeigt werden

    private void GetData_Click(object sender, RoutedEventArgs e)
    {
      int x=0;
      HTMLDocument doc;

      wb = new WebBrowser();
      wb.Visibility = System.Windows.Visibility.Visible;
      wb.Navigate("somesite.com");

      doc = wb.Document as mshtml.HTMLDocument;

      wb.LoadCompleted += wb_LoadCompleted;

      doc.getElementById("txt_One").innerText = "It Worked";

    }

    void wb_LoadCompleted(object sender, NavigationEventArgs e)
    {

    }

Erzeugt den Fehler

In {filename} ist eine nicht behandelte Ausnahme vom Typ 'System.NullReferenceException' aufgetreten.

Zusätzliche Informationen: Die Objektreferenz wurde nicht auf eine Instanz eines Objekts festgelegt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage