
    Hi,                     P    S SK r S SKrS SKrS SKJr  SrSrSrS rS
S jrS r	S	 r
g)    N)datetimezdhttps://autogestion-empresas.claro.com.ar/sites/launchpad#zcrm0204gestionesgeneraleslineas-Display&/zSapplication-zcrm0204gestionesgeneraleslineas-Display-component---Menu--input_cuentazUapplication-zcrm0204gestionesgeneraleslineas-Display-component---Menu--inpLinea-innerc           	      (  #    U R                  S[         S35      nUR                  S5      I S h  vN nU(       a  X;   a  [        SU 35        g[        S5        U R	                  S[         S35      I S h  vN nU(       a  UR                  5       I S h  vN   O U R                  S[         35      I S h  vN   [        R                  " S5      I S h  vN   / S	QnU H  nU R                  U5      I S h  vN nU(       d  M%  [        S
U S[        U5       S35        U Hu  nUR                  5       I S h  vN n	X;   d  M"  UR                  5       I S h  vN   [        R                  " S5      I S h  vN   [        SU	R                  5        35            g     O   UR                  S5      I S h  vN n
U
(       a  [        SU
 S35        g[        SU S35        U R                  SS9I S h  vN   g GN GN GNf GNH GN- GN N N N NZ N7f)N#z-innervaluez  Cuenta ya seleccionada: TzAbriendo dropdown cuenta...z .sapMInputBaseIconContainer   )[role='option']z[role='listitem']z.sapMSelectListItemz.sapMListTbl trz.sapMLIBContentz  Encontrado con 'z':  itemsz  Cuenta seleccionada: z  Cuenta en campo: z (usando valor existente)z	  Cuenta z no encontradazerror_cuenta.pngpathF)locator	ID_CUENTAget_attributeprintquery_selectorclickasynciosleepquery_selector_alllen
inner_textstrip
screenshot)pagenumero_cuentainput_cuentavalor_actualboton_dropdown
selectoresselectoritemsitemtextovalors              c:\claro-bot\claro\extractor.pyseleccionar_cuentar%      s    <<!I;f 56L%33G<<L5*<.9:	')..9+=Y/Z[[N""$$$jj1YK)))
--
J --h775&xjCJ<vFG"oo// )**,&&!--***3EKKM?CD    ,,W55E#E7*CDE	Im_N
34
//1/
222Y = \$) 8 0&* 6 3s   .HG6AH7G98HG< H7G?8HH!H7H8	H3H8H9HHH
H5H6=H3H4<H0H1H9H<H?HHHH
HHHHc                   #    U(       aE  [        S5        U R                  [        SS9I S h  vN   [        R                  " S5      I S h  vN   [        X5      I S h  vN nU(       d  g[        SU 35        U R                  S[         35      nUR                  5       I S h  vN   [        R                  " S5      I S h  vN   U R                  R                  S	5      I S h  vN   U R                  R                  US
S9I S h  vN   [        S5        / SQn/ n[        S5       HU  nU H%  n	U R                  U	5      I S h  vN nU(       d  M%    O   U(       a    O"[        R                  " S5      I S h  vN   MW     U(       d#  U R                  SS9I S h  vN   [        S5        g[        S[        U5       S35        U Hy  n
U
R!                  5       I S h  vN nX+;   d  M"  U R#                  SU
5      I S h  vN   [        R                  " S5      I S h  vN   [        SUR%                  5       S S  35          g   [        SU S35        g GN% GN
 GN GN GN GN| GN] GN# N N N Ns NW7f)Nz"Navegando a Gestiones en Lineas...domcontentloaded)
wait_until   FzIngresando linea: r   g333333?z	Control+a2   )delayz#  Esperando lista de sugerencias...)z.sapMSuggestionItemz.sapMSuggPopover lir   z.sapMLIBz.sapMSLI
   g      ?zdebug_linea.pngr
   z'  Sin sugerencias - ver debug_linea.pngz  Lista aparecio con r	   a  el => {
                el.dispatchEvent(new MouseEvent('mousedown', {bubbles: true}));
                el.dispatchEvent(new MouseEvent('mouseup',   {bubbles: true}));
                el.dispatchEvent(new MouseEvent('click',     {bubbles: true}));
            }   z  Linea seleccionada: <   Tz  Linea z no encontrada en la lista)r   gotoURL_CONSUMOr   r   r%   r   ID_LINEA_INPUTr   keyboardpresstyperanger   r   r   r   evaluater   )r   r   numero_lineaprimera_vezokinput_lineaselectores_sugr    intentor   r!   r"   s               r$   seleccionar_linear=   >   s6    24ii0BiCCCmmA!$6	6B	|n
-.,,>"234K




--

--

k
*** --

\

444 

/0N E9&H11(;;Eu ' mmC     oo#4o55578	!#e*V
45oo'' -- ! 	  
 --"""*5;;="+=*>?@  
H\N"<
=>s 	D	6 * 5 <
 	! 	6 (
 #s   *I3II3
II3IAI3#I$I3I"I3$I %!I3I#<I3I&	I3&I37I)8!I3I+A I3I-I3&I3;I/<I3I18I3I3I3I3I3 I3#I3&I3)I3+I3-I3/I31I3c                 @  #    [        S5        / SQnSnU H  n U R                  U5      R                  nUR                  5       I S h  vN nU(       aH  UR	                  5       I S h  vN   [
        R                  " S5      I S h  vN   [        SU 35        Sn  OM     U(       dy   U R                  S5      R                  U R                  S5      S	9R                  R	                  5       I S h  vN   [
        R                  " S5      I S h  vN   Sn[        S
5        U R                  S5      I S h  vN n[        S[        U5       35        / nU GH@  n	 U	R                  S5      I S h  vN n
U	R                  S5      I S h  vN nU	R                  S5      I S h  vN nU	R                  S5      I S h  vN nU
(       a  U
R                  5       I S h  vN OSnU(       a  UR                  5       I S h  vN OSnU(       a  UR                  5       I S h  vN OSnU(       a  UR                  5       I S h  vN OSn[        R                  " 5       R                  S5      UUUUUS.nUR!                  U5        [        SU SU SU SU 35        GMC     U$  GNS GN7 GN!    GM  = f GN GN!   U R                  SS9I S h  vN    [        S5        / s $ = f GN GNu GN_ GNI GN3 GN N N N! ["         a  n[        SU 35         S nAGM  S nAff = f7f)Nz Navegando a Saldos y Consumos...)z+.sapMSLITitle:has-text('Saldos y Consumos')z'.sapMText:has-text('Saldos y Consumos')z li:has-text('Saldos y Consumos')z*.sapMNavItem:has-text('Saldos y Consumos')z[title='Saldos y Consumos']Fr)   z  Menu clickeado con: Tztext=Saldos y Consumosz:visible)hasz#  Menu clickeado con filtro visiblezdebug_menu.pngr
   z/  No se pudo clickear menu - ver debug_menu.pngz.zBloqueBordeRedondeadozBloques encontrados: z.sapMTitle spanz.sapSuiteRMCInsideLabelz.sapMObjectIdentifierText spanbdiz
Sin titulozN/Az%Y-%m-%d %H:%M)fechalineatituloporcentaje_usadodetalle
renovacionz  z: z | z  Error en bloque: )r   r   first
is_visibler   r   r   filterr   r   r   r   r   r   nowstrftimeappend	Exception)r   r7   selectores_menu	clickeador   elementovisiblebloques
resultadosbloque	titulo_elpct_el
detalle_elrenovacion_elrC   
porcentajerE   rF   r!   es                       r$   extraer_bloquesr[   |   s    	,.O I#
	||H-33H$//11Gnn&&&mmA&&&.xj9: 	 	 $ 	,,78??DLLQ[D\?]cciikkk--"""I78 ++,EFFG	!#g,
01J	-"("7"78I"JJI"("7"78Q"RRF"("7"78X"YYJ"("7"7">>M=Fy33555P\F=Cv00222PUJ=Gz44666PUG=J}77999PUJ %-LLN$;$;<L$M$0$*$.$+$.D d#BvhbCyJ<HI+ 4 k 2&&	
 l"	//'7/888CDIF KRY>5269  	-'s+,,	-sb  L.J$J	J$'J(J$J!J$L(AJ3 0J-1J3 J0J3  L4K5#LK7-K".K7K%K7K( K78K+9K7K. K78K19 K7K3 K7:K5;AK7LJ$J$!J$$J*&L-J3 0J3 3KK
KL"K7%K7(K7+K7.K71K73K75K77
LLLLLc                    U (       d  [        S5        g [        SSSS9 n[        R                  " XSSS9  S S S 5        [        S	SS
SS9 n[        R
                  " XS   R                  5       S9nUR                  5         UR                  U 5        S S S 5        [        S[        U 5       S35        [        S5        [        S5        g ! , (       d  f       N= f! , (       d  f       NN= f)NzSin resultados para guardarzconsumo_todas.jsonwzutf-8)encodingFr   )ensure_asciiindentzconsumo_todas.csv )newliner^   r   )
fieldnamesz
Listo. z registros guardados.z  -> consumo_todas.jsonz  -> consumo_todas.csv)
r   openjsondumpcsv
DictWriterkeyswriteheader	writerowsr   )rS   fwriters      r$   guardar_resultadosrn      s    +, 
"C'	:a		*eA> 
; 
!3W	Em.@.@.BC$ 
F
 
Ic*o&&;
<=	#%	"$ 
;	: 
F	Es   C
AC
C
C')F)r   re   rg   r   r0   r   r1   r%   r=   r[   rn        r$   <module>rq      s8      
 wf	h/d<|EN%rp   