C # WPF - Oczekiwanie na załadowanie strony

Widziałem kilka wątków na StackOverflow dotyczących tego tematu, jednak żaden z nich nie wydaje się dostarczać odpowiedzi.

Mam przycisk, który po kliknięciu otwiera niewidoczną stronę internetową, przechodzi do adresu URL, wprowadza informacje do pola, naciska przycisk, a następnie zdrapuje ekran w celu uzyskania informacji.

Kości mojego kodu w zasadzie klikają:

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

I to właśnie tam staje się trudne.

Szukam drogi dozapewnić strona jest ładowana przed próbą wprowadzenia danych lub zeskrobania ekranu. Widziałem kilka wątków, o których mówięNavigated, IsLoaded, LoadCompleted jak równieżBackgroundWork rzeczy, ale nie mogę tego zrobić.

Która opcja jest najlepsza, aby określić, czy strona została w pełni załadowana? Jak uzyskałbyś wybraną metodę do pracy?

Nie mogę również uzyskać danych z ekranu, ponieważ WPF nie używa tych samych danychGetElementByID.

Edytować:

Poniżej zamieszczam błędy, na które natrafiam:

Nawiguj najpierw, gdy tylko strona zostanie poruszona i niekoniecznie czeka, aż załadowane zostaną wszystkie obiekty. To działa zgodnie z przeznaczeniem, ale nie może być użyte do moich celów.

IsLoaded nigdy nie zwraca prawdy

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";

}

Umieszcza go w nieskończonej pętliwb nigdy się nie ładuje.

To jest wersja z LoadCompleted

Zdarzenie „System.Windows.Controls.WebBrowser.LoadCompleted” może pojawić się tylko po lewej stronie + = lub - =

    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)
    {

    }

Powoduje błąd

W {filename} wystąpił nieobsługiwany wyjątek typu „System.NullReferenceException”

Informacje dodatkowe: odwołanie do obiektu nie jest ustawione na wystąpienie obiektu.

questionAnswers(1)

yourAnswerToTheQuestion