Jump to content

Web Automation


Recommended Posts

Hello guys!

I have a problem with a script, in the past I made a program and it worked perfect, I recently used it again and it already stands still in one step, the problem is a Javascript event that changed but now I cannot execute it.

 

<td colspan="2" align="center"><input type="button" id="Buscar" name="Buscar" value="Buscar" onclick="javascript:enviarForma(document.obtenercasosPersonaPorDocumento,'0');" class="boton"></td>

 

Previously I used this code and it worked, but now it does nothing

$botonconsulta = _IEGetObjByName($oIE,"Buscar")
 _IEAction($botonconsulta, 'click')
 _IELoadWait($oIE)

 

Now I have tried the following codes but none works.

 

;==================== 1
_IEHeadInsertEventScript($oIE, "document", "onclick", "javascript:enviarForma(document.obtenercasosPersonaPorDocumento,'0');")
ControlClick("SUPER CELAC", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]")
_IELoadWait($oIE)

;==================== 2
$forma = $oIE.document.obtenercasosPersonaPorDocumento
$oIE.Navigate("JavaScript:enviarForma("&$forma&",""0"");")
_IELoadWait($oIE)

;==================== 3
$boton = _IEGetObjById($oIE, "Buscar")
$boton.document.parentwindow.execScript("enviarForma(document.obtenercasosPersonaPorDocumento,'0');", "javascript")

I hope you can guide me, because I think the error is in the parameters that the javascript function receives but I don't know how to send it, here I leave the first part of the JavaScript function.

function enviarForma(frm,tipoForma){
  
    var bExisteDatoConsulta = false;  
    var bError=true;
    var mensajeError="";
    

    switch (tipoForma) {
        //--Forma documento
        case "0":
            if (validar_campo_no_vacio_no_print(frm.numeroDocumento)) {
                if (!isNum(frm.numeroDocumento.value)) {
                    bError = false;
                    mensajeError += "El número de documento debe ser un valor numérico\n";
                }
                bExisteDatoConsulta = true;
            } else {
                mensajeError += "Debe digitar un número de documento\n";
            }

            break;

 Thanks!

Link to comment
Share on other sites

21 minutes ago, JuanFelipe said:

Previously I used this code and it worked, but now it does nothing

$botonconsulta = _IEGetObjByName($oIE,"Buscar")
 _IEAction($botonconsulta, 'click')
 _IELoadWait($oIE)

Is there any information written to the Output panel when you run this code in Scite?

You could also try this variation --

$botonconsulta = _IEGetObjByName($oIE,"Buscar")
$hWnd = _IEPropertyGet($oIE, "hwnd")
_IEAction($botonconsulta, "focus")
ControlSend($hWnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")

 

Link to comment
Share on other sites

32 minutes ago, Danp2 said:

 

$botonconsulta = _IEGetObjByName($oIE,"Buscar")
$hWnd = _IEPropertyGet($oIE, "hwnd")
_IEAction($botonconsulta, "focus")
ControlSend($hWnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")

 

In an input of the page I write a value automatically.

I tried the code you shared with me and it throws this error:

 

"D:\windows\install\Include\IE.au3" (2168) : ==> The requested action with this object has failed.:
Return SetError($_IESTATUS_Success, 0, HWnd($oObject.HWnd()))
Return SetError($_IESTATUS_Success, 0, HWnd($oObject^ ERROR
>Exit code: 1    Time: 46.2

 

Link to comment
Share on other sites

I did it like this:

 

$botonconsulta = _IEGetObjByName($oIE,"Buscar")
;~          $hWnd = _IEPropertyGet($oIE, "hwnd")
            _IEAction($botonconsulta, "focus")
            ControlSend("SUPER CELAC", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")
            _IELoadWait($oIE)

and it puts the focus on the button, it does enter and I can click but the page does not respond, it is as if it did not execute the function.

Link to comment
Share on other sites

6 minutes ago, Danp2 said:

Instead of this --

_IEAction($botonconsulta, 'click')

have you tried this?

$botonconsulta.click()

If that doesn't work, can you share the URL for the website so that we can take a look?

Yes, I tried all that, I can't share the URL since it's my company's intranet, so it won't work. I have a webbroser open in the GUI and I click it manually and it does nothing, but if I open everything from any browser it works normal, that's why I thought about executing the javascript function alone, I really don't know which way to go.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...