Buenas a todos. Pude avanzar en la primera parte en cuanto al usuario y login. Le mande un timer y funciona bien.
![3 - Mis Retenciones.png](./download/file.php?id=598&sid=8a45684298e1723a6d46f63311376534)
- 3 - Mis Retenciones.png (153.58 KiB) Visto 1376 veces
El problema ahora es que no puedo hacer que entre a algunos de los servicios. Es mas, al hacer click con el mouse en los servicios sale de la aplicacion y abre una pagina con el explorer mostrando el error 401.
Como puedo hacer para que haga click de manera automatica en uno de los servicios y no salga de la apllicacion?
Este es el codigo del formulario de los Servicios
Código: Seleccionar todo
<form id="j_idt49" name="j_idt49" method="post" action="/contribuyente_/menu.xhtml" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt49" value="j_idt49" />
<div class="units-row">
<div class="unit-65 ">
<h5 class="arrowBlue marginTop-25">Servicios Habilitados</h5>
<div class="unit-50">
<ul class="arrowCeleste2 marginLeft-20">
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:0:j_idt66':'j_idt49:j_idt63:0:j_idt66','serviceName':'siap_web_f762','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Bienes Personales Web</p>
</a>
<p>Presentación de la declaración jurada de bienes personales mediante servicio Web </p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:2:j_idt66':'j_idt49:j_idt63:2:j_idt66','serviceName':'curriculum','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">ASPA - Aplicación para Selección de Personal AFIP</p>
</a>
<p>Carga de Currículum Vitae en AFIP</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:4:j_idt66':'j_idt49:j_idt63:4:j_idt66','serviceName':'mis_aportes','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Aportes en línea</p>
</a>
<p>Consulta de la situación personalobra social, riesgo del trabajo) respecto al destino</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:6:j_idt66':'j_idt49:j_idt63:6:j_idt66','serviceName':'rcel','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Comprobantes en línea</p>
</a>
<p>Sistema de emisión de comprobantes electrónicos</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:8:j_idt66':'j_idt49:j_idt63:8:j_idt66','serviceName':'fenix_f1746','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Devolución de percepciones</p>
</a>
<p>Solicitud para devolución de la percepción del 35% Bienes Personales - F.1746</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:10:j_idt66':'j_idt49:j_idt63:10:j_idt66','serviceName':'ivr','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Fiscalización Electrónica</p>
</a>
<p>Fiscalización Electrónica</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:12:j_idt66':'j_idt49:j_idt63:12:j_idt66','serviceName':'mis_retenciones','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Mis Retenciones</p>
</a>
<p>Mis Retenciones / Percepciones</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:14:j_idt66':'j_idt49:j_idt63:14:j_idt66','serviceName':'minmodernizacion-paec','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">PAEC</p>
</a>
<p>PAEC - Plataforma de Autenticación Electrónica Central del Gobierno de la Nación</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:16:j_idt66':'j_idt49:j_idt63:16:j_idt66','serviceName':'setidj','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Presentación de DDJJ y Pagos</p>
</a>
<p>Presentaciones de declaraciones juradas y pagos por medio de transferencia electrónica de datos</p>
</li>
<li class="marginTop-10"><a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:18:j_idt66':'j_idt49:j_idt63:18:j_idt66','serviceName':'regespcontribuyente','userId':'20301445626'},'_blank');return false">
<p class="azul bold font-size-14">Registros Especiales de Seguridad Social</p>
</a>
<p>Registros Especiales de la Seguridad Social</p>
</li>
</ul>
</div>
<input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:2" value="6417567651541022326:-4385698076839662546" autocomplete="off" />
</form>
Lo mas importante es esta parte del codigo que hace referencia a los distinto tipos de servicios como se ve en la foto, y que se respite salvo por el id del servicio.
Nose mucho de javascript.
<a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt51:2:j_idt53':'j_idt49:j_idt51:2:j_idt53','serviceName':'arfe_certificado','userId':'20301445626'},'_blank');return false">
<p class="naranja bold font-size-14">Administración de Certificados Digitales</p>
</a>
Tambien dejo el codigo en xailer, como hice la primera parte, a ver si me pueden dar una mano.
Código: Seleccionar todo
/*
* Proyecto: rpa
* Fichero: Form2.prg
* Descripción:
* Autor:
* Fecha: 19/03/2021
*/
#include "Xailer.ch"
CLASS TForm2 FROM TForm
COMPONENT oOcx
COMPONENT oTimer1
COMPONENT oFolder1
COMPONENT oFolderPage1
COMPONENT oFolderPage2
DATA lIngUsername INIT .F.
DATA lIngPassword INIT .F.
DATA lMenuPrincipal INIT .F.
METHOD CreateForm()
METHOD FormInitialize( oSender )
METHOD Timer1Timer( oSender )
ENDCLASS
#include "Form2.xfm"
//------------------------------------------------------------------------------
METHOD FormInitialize( oSender ) CLASS TForm2
local cResult1, cResult2
::lCentered:=.T.
::Maximize()
::oFolder1:nIndex:=1
WITH OBJECT ::oOcx := TWebBrowser():New( ::oFolderPage1 )
:nAlign := alCLIENT
:Create()
:Navigate( "https://auth.afip.gob.ar/contribuyente/" )
WHILE :busy
ProcessMessages()
END
END
WHILE ::oOcx:Busy
ProcessMessages()
END
cResult1 := ::oOcx:Document:Body:InnerText
cResult2 := ::oOcx:Document:Body:Innerhtml
::lIngUsername :=.F.
::lIngPassword :=.F.
::lMenuPrincipal:=.F.
::oTimer1:lEnabled:=.T.
::Timer1Timer()
RETURN Nil
//------------------------------------------------------------------------------
METHOD Timer1Timer( oSender ) CLASS TForm2
local cCUILT, cBtnSgte, cPass, cBtnIng, cForm
local oShell := CreateObject( "WScript.Shell" )
local cResult1, cResult2
if !::lIngUsername .and. !::lIngPassword .and. !::lMenuPrincipal
cCUILT :=::oOcx:Document:getElementById("F1:username")
cBtnSgte:=::oOcx:Document:getElementById("F1:btnSiguiente")
endif
if ::lIngUsername .and. !::lIngPassword .and. !::lMenuPrincipal
cPass :=::oOcx:Document:getElementById("F1:password")
cBtnIng :=::oOcx:Document:getElementById("F1:btnIngresar")
endif
do case
case !::lIngUsername .and. !::lIngPassword .and. !::lMenuPrincipal .and. ValType(cCUILT) <> Nil .and. ValType(cBtnSgte) <> Nil
if empty(cCUILT:Value) .and. (cBtnSgte:Name="F1:btnSiguiente" .and. cBtnSgte:Value=="SIGUIENTE")
::oOcx:Document:getElementById("F1:username"):Value:="20301445626" // CUIT o CUIL
oShell:SendKeys( Chr(9) )
oShell:SendKeys( Chr(13))
::lIngUsername:=.T.
::lIngPassword:=.F.
endif
case ::lIngUsername .and. !::lIngPassword .and. !::lMenuPrincipal .and. ValType(cPass) <> Nil .and. ValType(cBtnIng) <> Nil
if empty(cPass:Value) .and. (cBtnIng:Name="F1:btnIngresar" .and. cBtnIng:Value=="INGRESAR")
::oOcx:Document:getElementById("F1:password"):Value:="Aqui va el password" // No lo comparto x cuestiones de seguridad
oShell:SendKeys( Chr(9) )
oShell:SendKeys( Chr(9) )
oShell:SendKeys( Chr(13))
::lIngUsername :=.T.
::lIngPassword :=.T.
::lMenuPrincipal:=.F.
endif
case ::lIngUsername .and. ::lIngPassword .and. !::lMenuPrincipal
::lMenuPrincipal:=.T.
case ::lIngUsername .and. ::lIngPassword .and. ::lMenuPrincipal
// Aqui tengo problemas, la idea es que habra el servicio en la misma pagina o en la segunda pagina pero que no salga de la aplicacion
::oTimer1:lEnabled:=.F.
cForm:=::oOcx:Document:getElementById("j_idt49") // Id del formulario de servicios
cForm:OnClick:="mojarra.jsfcljs(document.getElementById('j_idt49'),{'j_idt49:j_idt63:12:j_idt66':'j_idt49:j_idt63:12:j_idt66','serviceName':'mis_retenciones','userId':'20301445626'},'_blank');return false"[/b]
endcase
RETURN Nil
//------------------------------------------------------------------------------