Pasar datos a web con webbrowser en tiempo de ejecución (no hay manera)

Iniciado por oskarrr, 11 Septiembre 2012, 16:47 PM

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

oskarrr

Hola. Aprovecho para presentarme aunque llevos unos añitos registrado. Quiero rellenar unos campos en tiempo de ejecución en una web, concretamente usuario, password, y darle clic al login. El clic al login y el campo de password me funcionan bien, pero al intentarle meter texto al campo login me da el error 438 de que no admite ese método o propiedad. Yo pienso que es porque el form (de la web) se llama login y el input text de la web también se llama login.

Este es el código html (resumido):

<form method="post" action="login.phtml" name="login" style="display:inline"><div style="float:left;">
<div style="float:left;">
<div style="float:left;line-height:8px;"><div class="icon mi mi_manager" style="float:left;"></div><p style="float:left;margin:0;padding:0;line-height:8px;padding-top:1px;">Usuario:&nbsp;</p><br /></div>
                               <div style="float:left;">
                               <input type="text" name="login" size="10" maxlength="10" class="userlogin" tabindex="1" style="margin-left:5px;margin-top:4px;" />
                               </div>
</div>
<div style="float:left;">
<div style="float:left;line-height:8px;"><div class="icon i_lock" style="float:left; margin-left:5px; margin-right:4px;"></div><p style="float:left;margin:0;padding:0;line-height:10px;padding-top:1px;">Contraseña:&nbsp;</p><br /></div>
                               <div style="float:left;">
                               <input type="password" name="pass" size="10" maxlength="8" style="width:80px;margin-left:5px;margin-top:4px;" tabindex="2" onkeypress="checkEnter(event, 'login')" class="userlogin" />
                               </div>
       </div><input type="hidden" name="action" value="login" />


Y este es mi código en VB6:


Private Sub Form_Load()
   WebBrowser1.Navigate "http://miweb.com/login"
End Sub

Private Sub Command1_Click()
   WebBrowser1.Document.All("login").Value = "pepito" 'aquí falla
   WebBrowser1.Document.All("pass").Value = "12345" 'funciona ok
   WebBrowser1.Document.parentWindow.execScript "submitForm('login','Login')", "javascript" 'funciona ok
End Sub

seba123neo

lo que veo mal, es que el textbox se llama "login" y el formulario contenedor tambien se llama "login", entonces como estas usando el .All y hay 2 objetos con el mismo nombre, te debe estra trayendo el formulario en ves del textbox, por eso no funciona, deberias no usar el .All en este caso y especificarle el nombre del formulario, algo asi:


Código (vb) [Seleccionar]
WebBrowser1.Document.login.login.Value = "pepito"

el primer login especifica el nombre del formulario que lo contiene y el segundo es el nombre del textbox, proba de esa forma haber que pasa.

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