enviar formularios web

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
hunter
Mensajes: 4
Registrado: 18 Feb 2015, 03:54

enviar formularios web

Mensaje por hunter »

hola, hace tiempo cree un scrip el cual me enviaba datos de un excel a un formulario web, pero me ha dado unos errores con ie explorer cuando tarda demasiado en cargar o se "rompe" o cualquier inconveniente en el pc como mensajes emergentes tambien hacen para rmi script. el otro dia revisando el foro un usuario que repondia a un tema parecido al mio creo un bot para subir los datos pero atraves de winhttp he indagado en el tema pero no lo entiendo mucho si alguien me pudiera ayudar se lo agradeceria.

saludos!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: enviar formularios web

Mensaje por Chefito »

Por favor, más información de lo que quieres hacer. No generalices tanto.
Pon la página web a la que quieres enviarle los datos, que datos quieres enviar del fichero excel, etc.
Como no des más información, puede que nadie te aclare la duda :smt018 .
Y si pones algo de código que lleves hecho aun mejor.

Si quieres rellenar un formulario de una página web con la udf winhttp, utiliza la función _WinHttpSimpleFormFill. Mira sus ejemplos en la ayuda y busca en el foro y google.
También puedes hacerlo utilizando alguna función más con _WinHttpSimpleSendRequest entre otras. Mira los ejemplos en la ayuda.

Intenta algo, y si no te sale postea el código hecho en el foro y di lo que te ocurre.

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 ;).
hunter
Mensajes: 4
Registrado: 18 Feb 2015, 03:54

Re: enviar formularios web

Mensaje por hunter »

gracias por responder y sorry soy bastante nuevo en el asunto pegare mi codigo se que es una payasada jejeje pero me funcionaba eso si a base de pixeles y esa no es la idea ya que me da mucho error el i explorer. la pagina para el envio de formularios puedo dartela por interno . gracias un saludo (estoy buscando mas info para crear el nuevo codigo)

Código: Seleccionar todo

#include <Constants.au3>
#NoTrayIcon
#Include <WinAPI.au3>
#include <MsgBoxConstants.au3>
#include <Excel.au3>
#include <Array.au3>
#include <FF.au3>
Global $Paused, $counter = 0
HotKeySet("{º}", "DSFF")
Func DSFF()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('El control automatico ha entrado en modo de espera = presione pausa para continuar"',802, 42)
    WEnd
    ToolTip("")
EndFunc
HotKeySet ("{ESC}","Quit")
Func Quit()
Exit
EndFunc
$prog_excel = _Excel_Open()
_Excel_BookOpen($prog_excel, "C:\Users\javiera\Documents\jkk.xlsx")
$workbook = _Excel_BookOpen($prog_excel, "C:\Users\javiera\Documents\jkk.xlsx") ; abre un arhivo excel existente
AdlibRegister("llamada",60000)
$range  =  "A5:A10"
$read = _Excel_RangeRead($workbook, $workbook.Activesheet, "A5", 1) ; read the content of the A1 case of the excel file
$read2 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A6", 1)
$read3 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A7", 1)
$read4 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A8", 1);telefono
Opt("MouseCoordMode", 1)
Opt("CaretCoordMode", 1)
Opt("PixelCoordMode", 1)
While 1
    $counter +=1
_FFConnect(Default, Default, 3000)
ToolTip ("ejecutando programa nombre",0, 0)
$nombre1 = PixelSearch( 673, 567, 673, 567, 0x292333 )
If Not @error Then
Exit
Else
_FFLinkClick ("Agregar un lugar","text")
Sleep(3000)
 EndIf
MouseClick("left",941, 528); nombre
Sleep(1000)
Send($read)
Sleep(7000)
$nombre1 = PixelSearch( 673, 567, 673, 567, 0x292333 )
If Not @error Then
Exit
Else
_FFLinkClick ("Agregar un lugar","text")
Sleep(3000)
 EndIf
MouseClick("left",941, 528); nombre
Sleep(1000)
Send($read)
Sleep(7000)
$nombre1 = PixelSearch( 764, 544, 1328, 648, 0x42B9E8 );lugar repetido
If Not @error Then
_FFLinkClick ("Agregar un lugar","text")
Sleep(3000)
ControlSend("repet: Bloc de notas", "", "Edit1", $read)
ControlSend("repet: Bloc de notas", "", "Edit1", $read2)
ControlSend("repet: Bloc de notas", "", "Edit1", $read3)
ControlSend("repet: Bloc de notas", "", "Edit1", $read4)
	  _Excel_RangeDelete ( $Workbook .ActiveSheet ,  $Range ,  $xlShiftUp )
$read = _Excel_RangeRead($workbook, $workbook.Activesheet, "A5", 1) ; read the content of the A1 case of the excel file
$read2 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A6", 1)
$read3 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A7", 1)
$read4 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A8", 1);telefono
_Excel_BookSave ( $Workbook )
MouseClick("left",941, 528); nombre
Sleep(1000)
Send($read)
Sleep(5000)
EndIf
WEnd
Func llamada()
_FFWindowClose()
Sleep(5000)
Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
Sleep(7000)
Sleep(1000)
;WinMove( "pagina en cuestion - Mozilla Firefox", "",575, 0,1107, 1000)
MouseClick("left",750, 76); se posiciona en url
Send("aca va la pagina en cuestion")
_FFIsConnected()
MouseClick("left",975, 72,2); ir
Sleep(5000)
;WinSetOnTop( "pagina en cuestion - Mozilla Firefox", "", 1)
MouseClick("left",941, 528); nombre
Sleep(1000)
Send($read)
Sleep(7000)
EndFunc
;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;nombre;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#include <Constants.au3>
#NoTrayIcon
#Include <WinAPI.au3>
#include <MsgBoxConstants.au3>
#include <Excel.au3>
#include <Array.au3>
#include <FF.au3>
Global $Paused, $counter = 0
HotKeySet("{º}", "DSFF")
Func DSFF()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('El control automatico ha entrado en modo de espera = presione pausa para continuar"',802, 42)
    WEnd
    ToolTip("")
EndFunc
HotKeySet ("{ESC}","Quit")
Func Quit()
Exit
EndFunc
$prog_excel = _Excel_Open()
_Excel_BookOpen($prog_excel, "C:\Users\javiera\Documents\jkk.xlsx")
$workbook = _Excel_BookOpen($prog_excel, "C:\Users\javiera\Documents\jkk.xlsx") ; abre un arhivo excel existente
AdlibRegister("llamada",60000)
$range  =  "A5:A10"
$read = _Excel_RangeRead($workbook, $workbook.Activesheet, "A5", 1) ; read the content of the A1 case of the excel file
$read2 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A6", 1)
$read3 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A7", 1)
$read4 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A8", 1);telefono
Opt("MouseCoordMode", 1)
Opt("CaretCoordMode", 1)
Opt("PixelCoordMode", 1)
While 1
    $counter +=1
ToolTip ("ejecutando programa comuna",0, 0)
Sleep(1500)
$coord3 = PixelSearch( 811, 595, 1280, 663, 0x1D96C5 );busca azul comuna en sector
If Not @error Then
Sleep(2000)
MouseClick("left",864, 624); click a la comuna
Exit
EndIf
Sleep(4500)
$coord3 = PixelSearch( 811, 595, 1280, 663, 0x1D96C5 );busca azul comuna en sector
If Not @error Then
Sleep(2000)
MouseClick("left",864, 624); click a la comuna
Exit
Else
ControlSend("repet: Bloc de notas", "", "Edit1", "lugar fuera de la ciudad")
ControlSend("repet: Bloc de notas", "", "Edit1", $read)
ControlSend("repet: Bloc de notas", "", "Edit1", $read2)
ControlSend("repet: Bloc de notas", "", "Edit1", $read3)
ControlSend("repet: Bloc de notas", "", "Edit1", $read4)
	  _Excel_RangeDelete ( $Workbook .ActiveSheet ,  $Range ,  $xlShiftUp )
$read = _Excel_RangeRead($workbook, $workbook.Activesheet, "A5", 1) ; read the content of the A1 case of the excel file
$read2 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A6", 1)
$read3 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A7", 1)
$read4 = _Excel_RangeRead($workbook, $workbook.Activesheet, "A8", 1);telefono
_Excel_BookSave ( $Workbook );guarda el excel
;ProcessClose("auoti.au3")
Sleep(2000)
MouseClick("left",941, 528); inicia autoit nuevamente
Sleep(1000)
EndIf
WEnd
;Send($read3)
;Sleep(3000)
;MouseClick("left",953, 736);click  a la seleccion de comuna
;Sleep(1000)


#include <IE.au3>
#include <Constants.au3>
#NoTrayIcon
#Include <WinAPI.au3>
;#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Excel.au3>
#include <Array.au3>
Global $Paused, $counter = 0
HotKeySet("{º}", "DSFF")
Func DSFF()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('El control automatico ha entrado en modo de espera = presione pausa para continuar"',802, 42)
    WEnd
    ToolTip("")
EndFunc
HotKeySet ("{ESC}","Quit")
Func Quit()
Exit
EndFunc
Opt("MouseCoordMode", 1)
Opt("CaretCoordMode", 1)
Opt("PixelCoordMode", 1)
While 1
$counter +=1
Sleep(1000)
$coord = PixelSearch( 917, 566,917, 566, 0xFCFCFC )
If Not @error Then
SplashTextOn ("","Ok!",300,50)
Sleep(1000)
Exit
Else
  SplashTextOn ("","Loading .....",300,50)
 EndIf
WEnd
;$coord = PixelSearch( 1329, 593, 1454, 704, 0x64B3E2 )
;If Not @error Then
;Else
 ;  WinSetOnTop( "pagina en cuestion - Internet Explorer", "", 0)
;	MsgBox(4096, "ERROR NO CARGA LA PAGINA", "esperando que la pagina cargue ", 5)
 ;EndIf
 ;$coord = PixelSearch( 1329, 593, 1454, 704, 0x64B3E2 )
;If Not @error Then
;Else
;   WinSetOnTop( "pagina en cuestion- Internet Explorer", "", 0)
;	MsgBox(4096, "ERROR NO CARGA LA PAGINA", "esperando que la pagina cargue ", 5)
; EndIf
hunter
Mensajes: 4
Registrado: 18 Feb 2015, 03:54

Re: enviar formularios web

Mensaje por hunter »

si alguien puede ayudarme le envio la pagina por pv,
Responder