Ayuda con COM Topic is solved

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

youdontknowme
Posts: 14
Joined: 03 Aug 2017, 10:40

Ayuda con COM

14 Sep 2017, 08:33

Buenos dias!

Estoy teniendo problemas al querer clickear en un boton de una pagina de InternetExplorer.
El codigo fuente de la misma es:

Code: Select all

<td align="right">
					<link rel="stylesheet" href="gpymButton.css" type="text/css">
					<table class='botonCuadro' cellspacing=0 cellpadding=0 border=0 nowrap><tr>
					<td>
					<table  class='boton2'  onfocus="this.className='boton2focussed';" onblur="this.className='boton2';"  onmouseover="this.className='boton2focussed';" onmouseout="this.className='boton2';"  nowrap cellspacing='0' cellpadding='0' onkeydown="if ( isKeyDownEnter() ) sendEnviar(document.resolucionDeActividadForm,'/consultarYResolver')" >
					 <tr style="cursor: hand;" onclick= "sendEnviar(document.resolucionDeActividadForm,'/consultarYResolver')" title='Buscar'>
					 <td align="center">&nbsp;BUSCAR&nbsp;</td>
					 </tr>
					 </table>
					 </td>
					 </tr>
					 </table>
				        </td>
Intente lo siguiente:

Code: Select all

value := ""
While ( value <> "BUSCAR" )                                                                               
value     := Pwb.document.getElementsByTagName("button")[ 0].innerText
Pwb.document.getElementsByTagName("button")[0].Click()     
return
Y tambien:

Code: Select all

Pwb.document.getElementsByName("Buscar").click()
Pero ninguno me dio resultado.

Comento que ya he hecho otros comandos con la web y funcionaron, pude llenar un campo, y pude abrir la web en el ie... pero no clickear..

Alguna idea de mis errores ?
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Ayuda con COM  Topic is solved

14 Sep 2017, 18:35

Tal vez esta herramienta te sirva de algo...
youdontknowme
Posts: 14
Joined: 03 Aug 2017, 10:40

Re: Ayuda con COM

15 Sep 2017, 07:07

Flipeador wrote:Tal vez esta herramienta te sirva de algo...
Para serte sincero la use y no... No se porque pero no me muestra datos del boton en si... O me da los mismos datos que apretando F12... Y no encuentro el ID del boton ni tampoco como apretarlo
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Ayuda con COM

15 Sep 2017, 09:38

No hay boton (<button ...>....</button>) en el html codigo fuente.

El estillo y la funcionalidad del boton son emulados:

Code: Select all

style="cursor: hand;" onclick= "sendEnviar(document.resolucionDeActividadForm,'/consultarYResolver')"
Puedes probar ejecutar la funcion adjunta al elemento como si el elemento hubiera sido cliqueado:

Code: Select all

Pwb.document.parentWindow.sendEnviar(Pwb.document.resolucionDeActividadForm, "/consultarYResolver")
my scripts
youdontknowme
Posts: 14
Joined: 03 Aug 2017, 10:40

Re: Ayuda con COM

18 Sep 2017, 13:29

Eso funciono! Muchas gracias

Alguna idea de como clickear un botton, mediante ese comando? Tiene acciones onClick() adentro.
youdontknowme
Posts: 14
Joined: 03 Aug 2017, 10:40

Re: Ayuda con COM

20 Sep 2017, 12:46

Alguno tiene una idea de lo siguiente?
Necesito clickear en estos botones:

Code: Select all

<TABLE class=boton2 cellSpacing=0 cellPadding=0>
<TBODY>
<TR onclick="evaluateTareaCumplimentable('226975280','false','false','simple','TELEGESTIONAR')" title=Cumplir style="CURSOR: pointer">
<TD>&nbsp;CUMPLIR&nbsp;</TD>
</TR>
</TBODY>
</TABLE>

Code: Select all

<INPUT onclick="buscarPopUpMotivos('seleccionDeMotivo.do')" alt=Buscar src="/gpm/images/lupa.gif" type=image border=0>
Me gustaria tener foco en este textarea para poder pegar el clipboard:

Code: Select all

<TD width="80%">
<TEXTAREA onkeypress=max(this) onkeyup=max(this) class=evenRowStyle style="HEIGHT: 45px; WIDTH: 600px" rows=3 cols=70 name=textObservacion>
</TEXTAREA>
</TD>
He probado varias formas y no encuentro como, lo tuve que solucionar haciendo comandos de MouseMove y MouseClick, pero me gustaria poder hacerlo en background con el COM
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Ayuda con COM

20 Sep 2017, 18:33

Hola youdontknowme,

Suponiendo que has salvado tu objecto ActiveX en la variable PWB:

1.

Code: Select all

Pwb.document.parentWindow.evaluateTareaCumplimentable("226975280", 0, 0, "simple", "TELEGESTIONAR")
2.

Code: Select all

Pwb.document.parentWindow.buscarPopUpMotivos("seleccionDeMotivo.do")
3.

Code: Select all

Pwb.document.querySelector("textarea[name=""textObservacion""].evenRowStyle").focus()
Mira especialmente:
functions (en inglés)
htmldom introduccion (en inglés)
execute-a-javascript-function-loaded-in-a-webbrowser-control

¡Suerte!
my scripts
youdontknowme
Posts: 14
Joined: 03 Aug 2017, 10:40

Re: Ayuda con COM

21 Sep 2017, 08:10

A_AhkUser wrote:Hola youdontknowme,

Suponiendo que has salvado tu objecto ActiveX en la variable PWB:

1.

Code: Select all

Pwb.document.parentWindow.evaluateTareaCumplimentable("226975280", 0, 0, "simple", "TELEGESTIONAR")
2.

Code: Select all

Pwb.document.parentWindow.buscarPopUpMotivos("seleccionDeMotivo.do")
3.

Code: Select all

Pwb.document.querySelector("textarea[name=""textObservacion""].evenRowStyle").focus()
Mira especialmente:
functions (en inglés)
htmldom introduccion (en inglés)
execute-a-javascript-function-loaded-in-a-webbrowser-control

¡Suerte!

Mil gracias!

Funciono a medias, pero funciono y es un gran paso!

Tengo otra pregunta...
En el primero, dice "226975280".. acabo de notar que ese numero varia todas las veces. Por lo tanto el comando no se adapta y me da error siempre... Alguna manera de que ese numero se evite?

En el tercero el querySelector me da error de nombre incorrecto.
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Ayuda con COM

21 Sep 2017, 11:37

En el tercero el querySelector me da error de nombre incorrecto.
Lo he olvidado: es necesario implementar querySelector a fin de que puedas utilzarlo. A la verdad, he utilizado este metodo porque no puedo saber si
el html tiene mas de uno textarea y, por consiguiente, conocer el index del elemento. Por lo tanto, puedes naturalemente sacar provecho, alternativamente, de getElementsByTagName, getElementsByName etc.

Code: Select all

index := ?
PWB.document.getElementsByName("textObservacion")[index].focus() ; o alternativamente...
; PWB.document.getElementsByClassName("evenRowStyle")[index].focus()
En el primero, dice "226975280".. acabo de notar que ese numero varia todas las veces. Por lo tanto el comando no se adapta y me da error siempre... Alguna manera de que ese numero se evite?
Quizas ejecutando la propiedad "onclick" - o sea:

Code: Select all

index := ?
PWB.document.getElementsByTagName("tr")[index].onclick()
my scripts

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 18 guests