Rellenar un campo "textarea" en formulario de internet

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
lmrc1008
Mensajes: 4
Registrado: 08 Abr 2013, 15:22
Ubicación: Madrid

Rellenar un campo "textarea" en formulario de internet

Mensaje por lmrc1008 »

Alguien sabe como rellenar el campo tipo "textarea" dentro de un formulario web utlizando las funciones _IE.
Pongo un ejemplo de codigo HTML:

<form id="post" name="post" action="/insertar" method="post" enctype="multipart/form-data">
<input id="city" name="city" value="30" type="hidden">
<input id="title" name="title" maxlength="100" type="text">
<input id="zone" name="zone" maxlength="50" type="text">

<textarea style="display: none;" id="editor" name="editor"></textarea> AQUI VENDRIA EL RESTO DE CODIGO QUE CORRESPONDE AL EDITOR

<input id="text" name="text" type="hidden">

<input id="image[]" name="image[]" accept="image/gif, image/jpeg, image/png" class="file" type="file"><span></span></div>
<input id="image[]" name="image[]" accept="image/gif, image/jpeg, image/png" class="file" type="file"><span></span></div>

<input id="email" name="email" maxlength="255" type="text"><p>
<input name="phone" id="phone" onkeyup="mascara(this,'-',patron2,true)" size="12" type="text">

<input id="submit" name="submit" value="Publicar Anuncio" type="submit">
</form>
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por PDF »

Hola, aqui tienes un ejemplo:

Código: Seleccionar todo

#include <IE.au3>

Local $oIE = _IECreate("http://shrib.com/HznYebAz")

Local $oP = _IEGetObjById($oIE, "igob"); Aqui va el ID en tu caso es "editor"

Local $texto="Texto"&@CRLF&"Mas texto"

_IEDocInsertText($oP, $texto, "beforebegin")
Aqui otro teniendo en cuenta de que es un formulario:

Código: Seleccionar todo

#include <IE.au3>

Local $oIE = _IECreate("http://example.com"); La url de la pagina
Local $oForm = _IEFormGetObjByName($oIE, "post")
Local $oQuery = _IEFormElementGetObjByName($oForm,"editor")
_IEFormElementSetValue($oQuery, "Texto de Ejemplo")
_IEFormSubmit($oForm)
Saludos.
lmrc1008
Mensajes: 4
Registrado: 08 Abr 2013, 15:22
Ubicación: Madrid

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por lmrc1008 »

Ok, muchas gracias, pero no es suficiente, te cuento:
De esa forma si que me coge el valor, ya lo habia hecho, el problema es que el editor se queda vacio aunque el objeto si tenga ese valor y al ejecutar el submit, te dice que hay que rellenar la descricpción, claro esta controlado por codigo java script.

La solución ha sido hacer un click con el rarton en el campo y luego enviar de nuevo el texto:

MouseClick("left", 350, 500)
send($text)

No me gusta pero no he encontrado otra mejor, porque el envio por winhttp me ha dejado de funcionar, que es como lo hacia antes, han hecho cambios en la pagina.

Saludos
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por PDF »

Pues muestranos el codigo que llevas, o de ser posible el enlace de la pagina, para ver que hacer..

Saludos :smt023
lmrc1008
Mensajes: 4
Registrado: 08 Abr 2013, 15:22
Ubicación: Madrid

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por lmrc1008 »

GUICreate("Publicando...", 200, 45, -1, -1, $WS_BORDER)
Global $progressbar1 = GUICtrlCreateProgress(-1, -1, 200, 20)
GUICtrlSetColor(-1, 0x00ff00)
GUISetState()
GUICtrlSetData($progressbar1, 5)
SelecProvincia()
$oURL0="http://www.eroloquo.com/" & $Prov
$oURL = "http://www.eroloquo.com/publica-anuncios"

Local $oIE = _IECreateEmbedded()
GUICreate("GUI_IE", 800, 800, 0, 0, $WS_VISIBLE)
GUICtrlCreateObj($oIE, 0, 0, 800, 800)
WinSetTrans ("GUI_IE", "", 250);$Visible)
GUISetState(@SW_SHOWNOACTIVATE ) ;Show GUI

_IENavigate($oIE, $oURL0)
_IENavigate($oIE, $oURL)
GUICtrlSetData($progressbar1, 15)

Local $oForm = _IEFormGetObjByName($oIE, "post")
Local $oQuery = _IEFormElementGetObjByName($oForm, "title")
_IEFormElementSetValue($oQuery, $tit)
Local $oQuery = _IEFormElementGetObjByName($oForm, "text")
_IEFormElementSetValue($oQuery, $text)
Local $oQuery = _IEFormElementGetObjByName($oForm, "zone")
_IEFormElementSetValue($oQuery, $Barrio)
Local $oQuery = _IEFormElementGetObjByName($oForm, "phone")
_IEFormElementSetValue($oQuery, $tfn)
Local $oQuery = _IEFormElementGetObjByName($oForm, "email")
_IEFormElementSetValue($oQuery, "[email protected]")

Local $oQuery = _IEFormElementGetCollection($oForm, 3)
_IEFormElementSetValue($oQuery, $text)

WinActivate("GUI_IE")
MouseClick("left", 350, 500)
send($text)
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por PDF »

Bueno al parecer se trata de un frame, no de un textarea, entonces lo podemos hacer asi:

Código: Seleccionar todo

Local $oFrame = _IEFrameGetCollection($oForm, "iFrame")
_IEBodyWriteHTML($oFrame, "Hello <b><font color=red>iFrame!</font></b>")
Inclusive le puedes agregar codigo html. saludos!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Rellenar un campo "textarea" en formulario de internet

Mensaje por Chefito »

Otra solución más clásica:

Código: Seleccionar todo

#include <IE.au3>

; ejemplo de rellenado de campos input type de la página

$oIE = _IECreate("http://www.eroloquo.com/publica-anuncios")
$textarea=_IEGetObjById($oIE,"editor")
$textarea.value="La forma simple y normal de toda la vida ;) <b><font color=red>Y texto con etiquetas</font></b>"
Y respecto a que no lo puedes hacer con la librería winhttp.....no se no se, seguro que se puede, pero habría que estudiar el código si te han puesto alguna traba :smt024 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder