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.

.mokk.

Cita de: 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


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"

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

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

nico56


devorio

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.


seba123neo

sera que "txtUsername" no existe, ¿ de que web es ?
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

solepantic

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

seba123neo

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

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 (html4strict) [Seleccionar]
<td><select name="pocId"><option value="">Todas las descargas</option>
            <option disabled class="disabled">   Por grupo de productos</option>
            <option value="67D35328-CB42-4879-A35A-D59E94D9DACA">      Business Solutions</option>
            <option value="C0037913-9E11-4A2D-8FD1-0BA441296CBC">      Developer Tools</option>
            <option value="66FB9844-5799-43C0-8CBF-FCC7C9BE7480">      Games & Xbox</option>

            <option value="BEAE32B8-4A67-4F78-BF4E-C114F922F1EA">      MSN</option>
            <option value="4289AE77-4CBA-4A75-86F3-9FF96F68E491">      Office</option>
            <option value="E49D77BF-D5AE-4EC6-9DFA-D7A19DBA995E">      Servers</option>
            <option value="38DF6AB1-13D4-409C-966D-CBE61F040027">      Windows</option>
            <option value="6C813870-3691-48E1-AAAC-64ACCD85E022">      Windows Live</option>
            <option value="7C1FA894-B2C5-41BE-8D97-E145DD2A883B">      Windows Mobile</option>

            <option disabled class="disabled">   Por categoría</option>
            <option value="9">      Aplicaciones para empresas y particulares</option>
            <option value="3">      Controladores</option>
            <option value="2">      DirectX</option>
            <option value="8">      Dispositivos móviles</option>
            <option value="12">      Herramientas de administración de sistemas</option>

            <option value="6">      Internet</option>
            <option value="1">      Juegos</option>
            <option value="5">      Macintosh y otras plataformas</option>
            <option value="10">      Recursos de desarrollo</option>
            <option value="7">      Windows (seguridad y actualizaciones)</option>
            <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>

      </tr>


entonces si ponemos en el codigo:

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("pocId").SetAttribute("value", "2")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6")
    End Sub

End Class


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

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

solepantic

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

Tahafut

Aprovecho tambien para hacer otra pregunta.

Nesecito en un radio button eleguir uno de los dos.

El codigo fuente es este
<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 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

solepantic

Cita de: 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

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 (html4strict) [Seleccionar]
<td><select name="pocId"><option value="">Todas las descargas</option>
            <option disabled class="disabled">   Por grupo de productos</option>
            <option value="67D35328-CB42-4879-A35A-D59E94D9DACA">      Business Solutions</option>
            <option value="C0037913-9E11-4A2D-8FD1-0BA441296CBC">      Developer Tools</option>
            <option value="66FB9844-5799-43C0-8CBF-FCC7C9BE7480">      Games & Xbox</option>

            <option value="BEAE32B8-4A67-4F78-BF4E-C114F922F1EA">      MSN</option>
            <option value="4289AE77-4CBA-4A75-86F3-9FF96F68E491">      Office</option>
            <option value="E49D77BF-D5AE-4EC6-9DFA-D7A19DBA995E">      Servers</option>
            <option value="38DF6AB1-13D4-409C-966D-CBE61F040027">      Windows</option>
            <option value="6C813870-3691-48E1-AAAC-64ACCD85E022">      Windows Live</option>
            <option value="7C1FA894-B2C5-41BE-8D97-E145DD2A883B">      Windows Mobile</option>

            <option disabled class="disabled">   Por categoría</option>
            <option value="9">      Aplicaciones para empresas y particulares</option>
            <option value="3">      Controladores</option>
            <option value="2">      DirectX</option>
            <option value="8">      Dispositivos móviles</option>
            <option value="12">      Herramientas de administración de sistemas</option>

            <option value="6">      Internet</option>
            <option value="1">      Juegos</option>
            <option value="5">      Macintosh y otras plataformas</option>
            <option value="10">      Recursos de desarrollo</option>
            <option value="7">      Windows (seguridad y actualizaciones)</option>
            <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>

      </tr>


entonces si ponemos en el codigo:

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("pocId").SetAttribute("value", "2")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=333325fd-ae52-4e35-b531-508d977d32a6")
    End Sub

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

solepantic

Hola otra vez,

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

<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!!