WebBrowser en C# como rellenar campos automaticamente

Iniciado por nico56, 13 Enero 2010, 04:50 AM

0 Miembros y 1 Visitante están viendo este tema.

nico56

Hola que tal, estoy haciendo un web browser y me gustaria que cuando entre a una pagina que pide usuario y contraseña complete esos campos automaticamente, con el contenido que tenga una variable del tipo string.


seba123neo

Hola, por ejemplo escribe en el textbox de www.google.com.ar

Código (vbnet) [Seleccionar]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      WebBrowser1.Document.GetElementById("q").InnerText = "Holaaaaaaa"
End Sub


ya que estamos como apretar un boton que seguro va a venir esa pregunta...

Código (vbnet) [Seleccionar]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     WebBrowser1.Document.GetElementById("NombreDelBoton").InvokeMember("click")
    End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

nico56

Un aplauso  ;-), no solo me contestaste sino que ahora te adelantaste a otra pregunta, pero podrias darme el ejemplo con el login de esta pagina ?

seba123neo

es simplemente sacar los nombres de los controles web, lo podes hacer mirando el codigo fuente de la web...pero seria:

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Document.GetElementById("user").InnerText = "usuario"
        WebBrowser1.Document.GetElementById("passwrd").InnerText = "password"
        WebBrowser1.Document.GetElementById("cookielength").InnerText = "100"
        WebBrowser1.Document.GetElementById("cookieneverexp").SetAttribute("checked", "true")
        WebBrowser1.Navigate("http://foro.elhacker.net/login2.html")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://foro.elhacker.net/login.html")
    End Sub
End Class


puse tambien como activar el checkbox..

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

nico56

#4
Che me das una mano con la pagina de gmail, para hacer el login automaticamente, www.gmail.com



WebBrowser1.Document.GetElementById("user").InnerText = "usuario"



El compilador me da error ahi cuando lo estoy debugueando, creo que el problema es la palabra "user" que no corresponde a la pagina :S

.mokk.

los codigos que veo son VB.NET y no C#
o.O
colocastes al final ";" ya que en C# asi lo indica jeje xd

seba123neo

solo hay que leer el codigo fuente d ela web , ahi esta todo.

Código (vbnet) [Seleccionar]
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Document.GetElementById("Email").InnerText = "usuario"
        WebBrowser1.Document.GetElementById("Passwd").InnerText = "password"
    End Sub
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

nico56

Cita de: seba123neo en 23 Enero 2010, 18:50 PM
solo hay que leer el codigo fuente d ela web , ahi esta todo.

Código (vbnet) [Seleccionar]
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Document.GetElementById("Email").InnerText = "usuario"
        WebBrowser1.Document.GetElementById("Passwd").InnerText = "password"
    End Sub


Hola gracias devuelta, pero cuando pongo para ver el código de la pagina es larguísimo, como encostran el nombre de los items ?

seba123neo

si obvio que es largo,pero si sabes un poquito de HTML aunque sea te das cuenta en que sector esta el codigo y los nombres de los controles...te tenes que fijar dodne el formulario hace el metodo POST...y despues de ahi siempre abajo estan los controles y donde dice "name =" ese es el nombre...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

nico56

Ah ok, ahora me faltaba poder hacer click en el boton "acceder" porque ahora ya resolvi el problema para rellenar los campos, prove agregando un navigate pero lo unico que hace es borrarme el valor de los campos


private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("Email").InnerText = "mi usuario";
            webBrowser1.Document.GetElementById("Passwd").InnerText = "mi pass";
            webBrowser1.Navigate("https://www.google.com/accounts/ServiceLoginAuth?service=mail");
           
        }


Si lo quiero hacer con el metodo "getElementoById" segun el codigo de la pagina es  name="singIn"