Try to perform actions through the DocumentCompleted event. This event is triggered whenever a navigation is completed.
You can use this in conjunction with an Action , so a method can be set to run whenever a navigation is complete.
Below is an example of how to set the DocumentCompleted event and methods that should be performed after a navigation load is completed.
public class Form1
{
// Recebe a url de navegação.
private string url = string.Empty;
private string Login = "login";
private string Senha = "Senha";
// Define o próximo método a ser executado.
private Action NextStap { get; set; }
public void Form1()
{
InitializeComponent();
// Define a url a ser navegada.
url = "http://site.com.br";
// Define o próximo método a ser executado.
NextStap = Stap1;
// Define um método para ser executado após o termino do carregamento de uma página.
webBrowser1.DocumentCompleted += WebBrowser_DocumentCompleted;
// Aciona a navegação.
// Após o termino, será acionado o método WebBrowser_DocumentCompleted.
webBrowser1.Navigate(new Uri(url));
}
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Executa o método definido na variável NextStap.
NextStap();
}
public void Stap1()
{
HtmlDocument doc = webBrowser1.Document;
HtmlElement usernamelogin = doc.GetElementById("login");
HtmlElement password = doc.GetElementById("Password");
HtmlElement submit = doc.GetElementById("submit");
usernamelogin.SetAttribute("value", Login);
password.SetAttribute("value", Senha);
// Definimos aqui o próximo método a ser executado
// após uma nova navegação ser completada.
NextStap = Stap2;
// A ação abaixo provavelmente irá aguardar algum retorno do navegador.
// Após sua execução o Stap2 deverá ser acionado.
submit.InvokeMember("click");
}
public void Stap2()
{
webBrowser1.Navigate("http://indigo.rafson.com.br/01.php");
}
}