Rellenar un campo "textarea" en formulario de internet
Rellenar un campo "textarea" en formulario de internet
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>
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>
Re: Rellenar un campo "textarea" en formulario de internet
Hola, aqui tienes un ejemplo:
Aqui otro teniendo en cuenta de que es un formulario:
Saludos.
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")
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)
Re: Rellenar un campo "textarea" en formulario de internet
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
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
Re: Rellenar un campo "textarea" en formulario de internet
Pues muestranos el codigo que llevas, o de ser posible el enlace de la pagina, para ver que hacer..
Saludos
Saludos

Re: Rellenar un campo "textarea" en formulario de internet
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)
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)
Re: Rellenar un campo "textarea" en formulario de internet
Bueno al parecer se trata de un frame, no de un textarea, entonces lo podemos hacer asi:
Inclusive le puedes agregar codigo html. saludos!
Código: Seleccionar todo
Local $oFrame = _IEFrameGetCollection($oForm, "iFrame")
_IEBodyWriteHTML($oFrame, "Hello <b><font color=red>iFrame!</font></b>")
- 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
Otra solución más clásica:
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
.
Saludos.
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>"

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 ;).