How to navigate to another page using WebBrowser?

1

I'm trying to access a URL and log in and password for authentication and then navigate between the pages?

After I log in to the link page, I am not getting any changes to another page that would be link

webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate(Url);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.Document == null)
{
    Application.DoEvents();
}

HtmlDocument doc = webBrowser1.Document;
HtmlElement login = doc.GetElementById("login");
HtmlElement password = doc.GetElementById("Password");
HtmlElement submit = doc.GetElementById("submit");
login.SetAttribute("value", Login);
password.SetAttribute("value", Senha);
submit.InvokeMember("click");

webBrowser1.Navigate("http://indigo.rafson.com.br/01.php");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete && webBrowser1.Document == null)
{
    Application.DoEvents();
}
    
asked by anonymous 13.10.2017 / 17:14

1 answer

2

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");
    }
}
    
13.10.2017 / 18:45