Jump to content
Sign in to follow this  
Luis paz

VBA EXCEL IE INTERNET EVENTO CLICK NO FUNCIONA

Recommended Posts

Hola Chicos, tengo un detalle con una automatización...

El evento .click no me funciona y no sé porque, e buscado en internet y no encuentro la solución...

Perdon por no poder compartirles el usuario y contraseña para que hagan pruebas, sin embargo, si tienen ideas o links para que pueda leer al respecto, les agradecería...

La página se llama SAP es un aplicativo en línea para el control de la contabilidad, entre otras cosas...

No funciona:

Private Sub CommandButton1_Click()
    Cargando
    objIE.document.getElementById("__button0").Focus
    objIE.document.getElementById("__button0").Click
    objIE.document.getElementById("__button0").Click
End Sub

HTML SAP:

<div tabindex="0" style="cursor: pointer" id="__button0" data-sap-ui="__button0" class="sapBUiBelNavIcon sapBUiIcon-shellMenu sapUiIconMirrorInRTL" title="Mostrar/ocultar navegación del centro de trabajo" role="button" aria-label="Mostrar/ocultar navegación del centro de trabajo" aria-pressed="false"></div>

Share this post


Link to post
Share on other sites

image.thumb.png.62bb3f9a4cb94113a744a3bb2387902b.png

La aplicación Wild Fire es para automatizar, pero no me gusta porque está limitada a las funciones d el apropia aplicación y no puedo ser creativo y hacer cosas diferentes, por ello quiero programarlos desde VBA...

Si te fijas, el evento que ejecuta esta app es Click.. y lo ejecuto y no funciona tampoco, sin embargo, en las opciones de la aplicación que señalé "Use Direct Automatio", si agrego esa opción, ahora si funciona... intestigué un poco sobre Use Direct..., pero no encontré algo que pudiese ayudarme... Lo que me da a entender que si se puede, pero estoy haciendo algo mal...

Y además, si te das cuenta, usa la misma referencia que estoy usando del ID=__Button0...

 

 

 

Share this post


Link to post
Share on other sites
<div style="display: flex; flex-direction: column; width: 100%; overflow: hidden; flex-grow: 0; flex-shrink: 0;"><div class="sapBUiBelTitle" style="display: flex; flex-direction: row; width: 100%; align-items: center; justify-content: space-between;" role="banner" id="__title0" data-sap-ui="__title0" data-sap-ui-fastnavgroup="true" data-sap-ui-popup="__title0"><div class="sapBUiNoPrint" style="display: flex; align-items: center; flex-shrink: 0; flex-grow: 0;"><div tabindex="0" style="cursor: pointer" id="__button0" data-sap-ui="__button0" class="sapBUiBelNavIcon sapBUiIcon-shellMenu sapUiIconMirrorInRTL" title="Mostrar/ocultar navegación del centro de trabajo" role="button" aria-label="Mostrar/ocultar navegación del centro de trabajo" aria-pressed="false"></div><img class="sapBUiBelCompanyLogo" id="flexCompanyLogo" IMAGEN"></div><div class="sapBUiNoPrint" style="flex-grow: 1; flex-shrink: 1; overflow: hidden; display: flex; align-items: center; justify-content: center;"><div id="__text0" data-sap-ui="__text0" class="sapBUiBelProductTitle">Factura: 9486</div><span id="__icon0" data-sap-ui="__icon0" role="button" title="Cerrar (Ctrl+Q)" tabindex="0" data-sap-ui-icon-content="" class="sapBUiBelTitleClose sapUiIcon sapUiIconMirrorInRTL sapUiIconPointer" style="font-family:'SAP-icons'"></span></div><div class="sapBUiBelPrintTitle">SAP Business ByDesign</div><div class="sapBUiNoPrint" style="display: flex; align-items: center; flex-shrink: 0; flex-grow: 0;"><div tabindex="0" style="cursor: pointer" id="__button8" data-sap-ui="__button8" class="sapBUiBelTitleIconL sapBUiIcon-search" title="Búsqueda" role="button" aria-label="Búsqueda"></div><div tabindex="0" style="display: flex; flex-direction:column; align-items: center;" id="__button7" data-sap-ui="__button7" class="sapBUiBelTitleIconL sapBUiRoundButton" role="Button" aria-haspopup="true" title="REYNA NANCY NAVA LUJAN"><div class="sapBUiRoundButtonIcon" style="display: flex; align-items: center; justify-content: center;"><div style="display: flex; align-items: center; justify-content: center; overflow: hidden;" class="sapBUiRoundButtonIconImg"><img style=" max-width: 100%; max-height: 100%;" src="resources/sap/b/themes/sap_belize/img/user_placeholder.jpg"></div></div></div><div tabindex="0" style="cursor: pointer" id="__button1" data-sap-ui="__button1" class="sapBUiBelTitleIconL sapBUiIcon-help" title="Mostrar/ocultar panel lateral" role="button" aria-label="Mostrar/ocultar panel lateral"></div></div></div></div>

No me permite adjuntar la imagen, por que dice que se pasa del tamaño... pero es una imagen pequeña... ¿😕?

 

Share this post


Link to post
Share on other sites

Hola

Ya viendo todo el código, hay algo que resalta y es el atributo "aria-pressed" del botón el cual está en False, por eso no ocurre nada cuando mandas el clic, dicha propiedad debe cambiarse previamente, es casi fijo que hay algún otro objeto en dicha web que lo hace y/o algún código, probablemente JavaScript, que realiza eso. Por eso tu programa WildFire puede lograrlo después del cambio que mencionas. ¿Podría hacerse a través de VBA? Probablemente sí, pero al no tener acceso a dicha web/aplicación solo tú puedes saberlo y/o buscar cómo, y no, no sería fácil explicarte qué buscar.

Igual, y solo por si acaso, intenta modificar dicho atributo así:

objIE.document.getElementById("__button0").SetAttribute "aria-pressed", "True"

Pero no garantizo que funcione ya que... no tengo acceso para probar.

Saludos.

Share this post


Link to post
Share on other sites
En 6/12/2019 at 17:06 , avalencia dijo:

Hola

Ya viendo todo el código, hay algo que resalta y es el atributo "aria-pressed" del botón el cual está en False, por eso no ocurre nada cuando mandas el clic, dicha propiedad debe cambiarse previamente, es casi fijo que hay algún otro objeto en dicha web que lo hace y/o algún código, probablemente JavaScript, que realiza eso. Por eso tu programa WildFire puede lograrlo después del cambio que mencionas. ¿Podría hacerse a través de VBA? Probablemente sí, pero al no tener acceso a dicha web/aplicación solo tú puedes saberlo y/o buscar cómo, y no, no sería fácil explicarte qué buscar.

Igual, y solo por si acaso, intenta modificar dicho atributo así:


objIE.document.getElementById("__button0").SetAttribute "aria-pressed", "True"

Pero no garantizo que funcione ya que... no tengo acceso para probar.

Saludos.

Lo intente mi estimado @avalencia, pero no tuve éxito... Realmente no sé cual sea el problema y me frustra que no puedo resolverlo 😓

Pero gracias por tu ayuda, si sabes algomás al respecto, te agradecería mucho tu ayuda 

Share this post


Link to post
Share on other sites

Estimado, llenar un formulario finalmente no quita tiempo y no es costoso, pero después llenar datos para hacer pruebas, conocer el programa, programar toda la macro, etc., va más allá de la ayuda gratuita que damos en los foros. Puedo entender que no des tu clave y usuario y/o generes alguno para que probemos porque quizás es una aplicación de tu empresa, pero espero que entiendas que no es que yo no quiera ayudarte, es una cuestión de tiempo. Saludos.

PD: Nunca descargo nada que yo no  vaya realmente a usar, aunque en este caso creo que igual no hay descarga que hacer.

Share this post


Link to post
Share on other sites
Hace 8 horas, avalencia dijo:

Estimado, llenar un formulario finalmente no quita tiempo y no es costoso, pero después llenar datos para hacer pruebas, conocer el programa, programar toda la macro, etc., va más allá de la ayuda gratuita que damos en los foros. Puedo entender que no des tu clave y usuario y/o generes alguno para que probemos porque quizás es una aplicación de tu empresa, pero espero que entiendas que no es que yo no quiera ayudarte, es una cuestión de tiempo. Saludos.

PD: Nunca descargo nada que yo no  vaya realmente a usar, aunque en este caso creo que igual no hay descarga que hacer.

Tienes toda la razón Valencia, es mi deseperación por encontrar la solución,

 

Saludos

Share this post


Link to post
Share on other sites

Por cierto, acabo de oprimirle click derecho al botón y "ver código fuente" y me aparece lo siguiente 


<!DOCTYPE HTML>
<html class="sapBUiShell" dir="ltr">
	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
		<meta name="sap-ui-fesr" content="true"> <!-- this meta-tag instructs UI5 to generate a passport and add it to xhr-requests -->
		
		<link rel="shortcut icon" href="resources/sap/b/themes/favicon.ico">				
        
        <script type="text/javascript">
		window["sap-b-config"] = {
			"data-sap-b-launchpad": "true"
		};		
		</script>
        <!-- Frame buster -->
        <style> html{display : none ; } </style>
        <script>
          if( self == top ) {
            document.documentElement.style.display = 'block' ;
          } else {
            top.location = self.location ;
          }
        </script>
		<script src="resources/sap-ui-cachebuster/sap-ui-core.js?version=2" type="text/javascript"	
				id="sap-ui-bootstrap"
				data-sap-ui-libs="sap.m"
				data-sap-ui-theme="sap_belize"
				data-sap-ui-xx-bindingSyntax="complex" >
		</script>
		<script src="resources/sap/b/extlib/jquery-ui.min.js"></script>

		<script type="text/javascript" id="sap-b-application"
				data-sap-b-gitCommitId="6cdffc2795b1b55101d80d65fb1d1c5efd9c09e7"
				data-sap-b-buildTimestamp="20191129074445"
				data-sap-b-clientVersion="1911.2.0"
			src="resources/sap/b/ApplicationStarter.js">
		</script>
	</head>
	<body class="sapUiSizeCompact sapBUiShellBackground sapBUiBody" role="application">
		<div id="content" class="sapBUiContent"></div>
	</body>
</html>

 

Share this post


Link to post
Share on other sites
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png