Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: nico56 en 13 Enero 2010, 04:50 am



Título: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 13 Enero 2010, 04:50 am
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.



Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 13 Enero 2010, 05:05 am
Hola, por ejemplo escribe en el textbox de www.google.com.ar (http://www.google.com.ar)

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

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

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

saludos.


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 13 Enero 2010, 05:23 am
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 ?


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 13 Enero 2010, 05:38 am
es simplemente sacar los nombres de los controles web, lo podes hacer mirando el codigo fuente de la web...pero seria:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        WebBrowser1.Document.GetElementById("user").InnerText = "usuario"
  5.        WebBrowser1.Document.GetElementById("passwrd").InnerText = "password"
  6.        WebBrowser1.Document.GetElementById("cookielength").InnerText = "100"
  7.        WebBrowser1.Document.GetElementById("cookieneverexp").SetAttribute("checked", "true")
  8.        WebBrowser1.Navigate("http://foro.elhacker.net/login2.html")
  9.    End Sub
  10.  
  11.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  12.        WebBrowser1.Navigate("http://foro.elhacker.net/login.html")
  13.    End Sub
  14. End Class

puse tambien como activar el checkbox..

saludos.


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 23 Enero 2010, 05:17 am
Che me das una mano con la pagina de gmail, para hacer el login automaticamente, www.gmail.com

Código:

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


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: .mokk. en 23 Enero 2010, 07:07 am
los codigos que veo son VB.NET y no C#
o.O
colocastes al final ";" ya que en C# asi lo indica jeje xd


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 23 Enero 2010, 18:50 pm
solo hay que leer el codigo fuente d ela web , ahi esta todo.

Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        WebBrowser1.Document.GetElementById("Email").InnerText = "usuario"
  3.        WebBrowser1.Document.GetElementById("Passwd").InnerText = "password"
  4.    End Sub


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 23 Enero 2010, 19:29 pm
solo hay que leer el codigo fuente d ela web , ahi esta todo.

Código
  1.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        WebBrowser1.Document.GetElementById("Email").InnerText = "usuario"
  3.        WebBrowser1.Document.GetElementById("Passwd").InnerText = "password"
  4.    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 ?


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 23 Enero 2010, 21:09 pm
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...


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 23 Enero 2010, 21:58 pm
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

Código:
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 
Código:
name="singIn"


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: .mokk. en 23 Enero 2010, 22:15 pm
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

Código:
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  
Código:
name="singIn"

tu mismo lo acabas de decir jeje
Código:
WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")

Y ya con ello es como dar click al boton indicado ^^


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: nico56 en 24 Enero 2010, 01:06 am
JAjaja ok muchas gracias.


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: devorio en 31 Marzo 2010, 22:35 pm
que tal revisando el tema me di cuenta que a  mi tambien me da un error en esta parte:

webBrowser1.Document.GetElementById("txtUsername").InnerText = user;

claro user es una variable. jeje  no se donde cambiarlo ya que ya tengo el id del campo tanto usuario como password bueno gracias  y espero  puedan ayudarme.



Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 1 Abril 2010, 20:58 pm
sera que "txtUsername" no existe, ¿ de que web es ?


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: solepantic en 18 Julio 2010, 21:13 pm
Hola a todos,

Subo este hilo para preguntar cómo se podría asignar el valor de un desplegable. Básicamente lo que quiero hacer es seleccionar un valor de los que aparecen en el desplegable y luego darle al botón de "click" de la página.

Un saludo y muchas gracias


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 19 Julio 2010, 07:21 am
es casi lo mismo que los otros, pones el nombre del combo y le asignas un valor, aca te dejo un ejemplo:

con la pagina de microsoft, vamos a cambiar el valor del combo de la busqueda en la parte superior.

http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6 (http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6)

buscas primero en el codigo fuente donde dice select name="pocId" ahi es donde se empieza a cargar el combo en el HTML, pocId es el nombre del combo, fijate que cuando carga el combo asigna valores a los items:

Código
  1. <td><select name="pocId"><option value="">Todas las descargas</option>
  2.            <option disabled class="disabled">   Por grupo de productos</option>
  3.            <option value="67D35328-CB42-4879-A35A-D59E94D9DACA">      Business Solutions</option>
  4.            <option value="C0037913-9E11-4A2D-8FD1-0BA441296CBC">      Developer Tools</option>
  5.            <option value="66FB9844-5799-43C0-8CBF-FCC7C9BE7480">      Games & Xbox</option>
  6.  
  7.            <option value="BEAE32B8-4A67-4F78-BF4E-C114F922F1EA">      MSN</option>
  8.            <option value="4289AE77-4CBA-4A75-86F3-9FF96F68E491">      Office</option>
  9.            <option value="E49D77BF-D5AE-4EC6-9DFA-D7A19DBA995E">      Servers</option>
  10.            <option value="38DF6AB1-13D4-409C-966D-CBE61F040027">      Windows</option>
  11.            <option value="6C813870-3691-48E1-AAAC-64ACCD85E022">      Windows Live</option>
  12.            <option value="7C1FA894-B2C5-41BE-8D97-E145DD2A883B">      Windows Mobile</option>
  13.  
  14.            <option disabled class="disabled">   Por categoría</option>
  15.            <option value="9">      Aplicaciones para empresas y particulares</option>
  16.            <option value="3">      Controladores</option>
  17.            <option value="2">      DirectX</option>
  18.            <option value="8">      Dispositivos móviles</option>
  19.            <option value="12">      Herramientas de administración de sistemas</option>
  20.  
  21.            <option value="6">      Internet</option>
  22.            <option value="1">      Juegos</option>
  23.            <option value="5">      Macintosh y otras plataformas</option>
  24.            <option value="10">      Recursos de desarrollo</option>
  25.            <option value="7">      Windows (seguridad y actualizaciones)</option>
  26.            <option value="4">      Windows Media</option></select><input type="text" name="freetext" maxlength="60" class="textinput" value="" /><input class="searchBtn" type="submit" value="Ir"><br><input type="checkbox" name="DisplayEnglishAlso" id="DisplayEnglishAlso" title="Mostrar también las descargas en inglés"><label for="DisplayEnglishAlso">Mostrar también las descargas en inglés</label><a href="info.aspx?na=26&amp;p=&amp;SrcDisplayLang=es&amp;SrcCategoryId=&amp;SrcFamilyId=333325fd-ae52-4e35-b531-508d977d32a6&amp;u=advancedsearch.aspx%3fdisplaylang%3des">Búsqueda avanzada</a><input type="hidden" name="DisplayLang" value="es"></td>
  27.  
  28.      </tr>
  29.  

entonces si ponemos en el codigo:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        WebBrowser1.Document.GetElementById("pocId").SetAttribute("value", "2")
  5.    End Sub
  6.  
  7.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.        WebBrowser1.Navigate("http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6")
  9.    End Sub
  10.  
  11. End Class

ahi lo cambia al valor 2, que seria la opcion DirectX.

saludos.





Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: solepantic en 19 Julio 2010, 08:20 am
Hola

Muchas gracias por responder tan rápidamente.

La opción que propones fue justo la que utilicé y no me funciona. Tengo un form con un webbrowser y un botón. En el webbrowser cargo automáticamente la página que quiero "manipular". Cuando le doy al botón de mi form asigno los valores que me interesan con SetAttribute y luego ejecuto el Click sobre el botón de Submit de la página. Lo que sucede es que los comboboxes del form no toman el valor que les asigno sino que se quedan en blanco y la página me informa del correspondiente error.

Pienso que podría estar pasando lo siguiente: el valor value es lo que la página asigna en función de la opción elegida en el combo. Pero en el combo no seleccionamos la opción '1', '2' ó '3', sino 'Juegos', 'DirectX' o 'Controladores', que deben corresponder con otro campo del combobox. Probé con Items[0] y cosas así pero tampoco funcionó.

Cuando llegue a casa lo probaré con la página de microsoft para ver si me da el mismo error.

Un saludo y gracias de nuevo


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: Tahafut en 19 Julio 2010, 17:20 pm
Aprovecho tambien para hacer otra pregunta.

Nesecito en un radio button eleguir uno de los dos.

El codigo fuente es este
Código:
<tr><td ><form method='post' action='index.php'> 
1000x </td><td>
<input name='serv' type='radio' value='1' checked  /></td></tr>
<tr><td> 200x</td><td>
<input name='serv' type='radio' value='2' /></td></tr>

para seleccionar el de 1000x no hay problema, uso
Código:
 WebBrowser1.Document.GetElementById("serv").SetAttribute("checked","true");
el problema esta en que tienen en el mismo nombre pero diferente value, no se como acceder al value 2

agradezco por la ayuda


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: solepantic en 19 Julio 2010, 22:41 pm
es casi lo mismo que los otros, pones el nombre del combo y le asignas un valor, aca te dejo un ejemplo:

con la pagina de microsoft, vamos a cambiar el valor del combo de la busqueda en la parte superior.

http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6 (http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6)

buscas primero en el codigo fuente donde dice select name="pocId" ahi es donde se empieza a cargar el combo en el HTML, pocId es el nombre del combo, fijate que cuando carga el combo asigna valores a los items:

Código
  1. <td><select name="pocId"><option value="">Todas las descargas</option>
  2.            <option disabled class="disabled">   Por grupo de productos</option>
  3.            <option value="67D35328-CB42-4879-A35A-D59E94D9DACA">      Business Solutions</option>
  4.            <option value="C0037913-9E11-4A2D-8FD1-0BA441296CBC">      Developer Tools</option>
  5.            <option value="66FB9844-5799-43C0-8CBF-FCC7C9BE7480">      Games & Xbox</option>
  6.  
  7.            <option value="BEAE32B8-4A67-4F78-BF4E-C114F922F1EA">      MSN</option>
  8.            <option value="4289AE77-4CBA-4A75-86F3-9FF96F68E491">      Office</option>
  9.            <option value="E49D77BF-D5AE-4EC6-9DFA-D7A19DBA995E">      Servers</option>
  10.            <option value="38DF6AB1-13D4-409C-966D-CBE61F040027">      Windows</option>
  11.            <option value="6C813870-3691-48E1-AAAC-64ACCD85E022">      Windows Live</option>
  12.            <option value="7C1FA894-B2C5-41BE-8D97-E145DD2A883B">      Windows Mobile</option>
  13.  
  14.            <option disabled class="disabled">   Por categoría</option>
  15.            <option value="9">      Aplicaciones para empresas y particulares</option>
  16.            <option value="3">      Controladores</option>
  17.            <option value="2">      DirectX</option>
  18.            <option value="8">      Dispositivos móviles</option>
  19.            <option value="12">      Herramientas de administración de sistemas</option>
  20.  
  21.            <option value="6">      Internet</option>
  22.            <option value="1">      Juegos</option>
  23.            <option value="5">      Macintosh y otras plataformas</option>
  24.            <option value="10">      Recursos de desarrollo</option>
  25.            <option value="7">      Windows (seguridad y actualizaciones)</option>
  26.            <option value="4">      Windows Media</option></select><input type="text" name="freetext" maxlength="60" class="textinput" value="" /><input class="searchBtn" type="submit" value="Ir"><br><input type="checkbox" name="DisplayEnglishAlso" id="DisplayEnglishAlso" title="Mostrar también las descargas en inglés"><label for="DisplayEnglishAlso">Mostrar también las descargas en inglés</label><a href="info.aspx?na=26&amp;p=&amp;SrcDisplayLang=es&amp;SrcCategoryId=&amp;SrcFamilyId=333325fd-ae52-4e35-b531-508d977d32a6&amp;u=advancedsearch.aspx%3fdisplaylang%3des">Búsqueda avanzada</a><input type="hidden" name="DisplayLang" value="es"></td>
  27.  
  28.      </tr>
  29.  

entonces si ponemos en el codigo:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.        WebBrowser1.Document.GetElementById("pocId").SetAttribute("value", "2")
  5.    End Sub
  6.  
  7.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.        WebBrowser1.Navigate("http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6")
  9.    End Sub
  10.  
  11. End Class

ahi lo cambia al valor 2, que seria la opcion DirectX.

saludos.





Bueno, pues la Ley de Murphy se ha vuelto a cumplir. Juro y perjuro que estuve probando esto toda la tarde del domingo y no me funcionó pero ahora sí que me funciona.

Muchas gracias!!!

Saludos


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: solepantic en 21 Julio 2010, 23:29 pm
Hola otra vez,

Una dudilla más. Tengo la siguiente línea en una página web:

Código:
<td><button type="el_boton" onclick="enviar_form">Enviar Formulario</button></td>

¿Cómo podría accionar ese botón? Con GetElementByID no funciona porque el botón no tiene ID. ¿Alguna sugerencia?

Saludos y gracias!!


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: seba123neo en 22 Julio 2010, 00:53 am
para accionar un boton lo explique en la primer pagina de este topic, el tema es que a veces no se puede acceder y lo que se tiene que hacer es directamente "navegar" hacia el link donde se dirige ese control que no podemos acceder y listo...es como si lo apretaramos manualmente.

fijate en mi segundo codigo que posteo en este topic en la otra pagina y veras como logearte a esta web desde codigo, y fijate que el boton "Ingresar" no se puede acceder, entonces lo que hago es directamente navegar hacia el link que se ejecuta al apretarlo, entonces me hace el post y me valida el formulario.


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: TEMPLAR en 7 Octubre 2010, 18:04 pm
Hola, yo he hecho un programita basándome en el ejemplo que habéis puesto con el fin de rellenar un formulario de una página  que sortean entradas en mi ciudad (no hay catchas ni nada por el estilo pero el nombre del botón enviar esta oculto aún así no da error con el nombre que probe). Por ahora rellena pero creo que no envia el form.
Código:
Public Class frmSorteos

    Private Sub btnEmpezar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEmpezar.Click
      

        WebBrowser1.Document.GetElementById("your-name").InnerText = (txtNombre.Text)
        WebBrowser1.Document.GetElementById("TuDNIobligatorio").InnerText = (txtDNI.Text)
        WebBrowser1.Document.GetElementById("your-email").InnerText = (txtEmail.Text)
        WebBrowser1.Document.GetElementById("Tfono").InnerText = (txtTLF.Text)

        WebBrowser1.Navigate("http://www.eldia.es/promociones/?p=904")
        WebBrowser1.Document.GetElementById("submit").InvokeMember("click")



    End Sub


    Private Sub frmSorteos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.eldia.es/promociones/?p=904")
    End Sub
End Class


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: mguala en 23 Agosto 2012, 18:31 pm
para accionar un boton lo explique en la primer pagina de este topic, el tema es que a veces no se puede acceder y lo que se tiene que hacer es directamente "navegar" hacia el link donde se dirige ese control que no podemos acceder y listo...es como si lo apretaramos manualmente.

fijate en mi segundo codigo que posteo en este topic en la otra pagina y veras como logearte a esta web desde codigo, y fijate que el boton "Ingresar" no se puede acceder, entonces lo que hago es directamente navegar hacia el link que se ejecuta al apretarlo, entonces me hace el post y me valida el formulario.

Hola en donde puedo ver todo lo relacionado a este tema que has comentado? estoy interesado  en esto


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: USLO en 24 Agosto 2012, 12:13 pm
eba123neo!

Madre mia y yo haciendo tabulaciones para llegar al textbox xDD para luego iniciar sesion.

Muy muy  util.Gracias por tus sabios consejos !


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: dany22_ en 17 Enero 2015, 17:52 pm
Estimado mguala quiera que porfavor me ayudes a manipular esta pagina web
http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias
que a su vez contiene por medio de un frameset y frame a esta pagina
http://www.sunat.gob.pe/cl-ti-itmrconsruc/frameCriterioBusqueda.jsp
y esta otra que es el resultado de la consulta
http://www.sunat.gob.pe/cl-ti-itmrconsruc/frameResultadoBusqueda.html
LO E INTENTADO PERO NO LO LOGRO HACER.


Título: Re: WebBrowser en C# como rellenar campos automaticamente
Publicado por: Eleкtro en 18 Enero 2015, 05:06 am
@dany22_

Porfavor, lee la fecha del post, y la fecha de última conexión del usuario "mguala".

Está prohibido revivir temas antiguos.

Tema cerrado.

Saludos!