
    i7                     X    d Z ddlZddlZddlmZ dZdZg Zd	dZd Z	e
dk(  r e	        yy)
u   
Argos QA Tester - Naver Blog Keyword Analysis Feature Test (v2)
Properly targets the 키워드분석 (keyword analysis) step, not 글작성 history
    N)sync_playwrightz8/home/jay/workspace/memory/reports/task-1933-screenshotsz http://localhost:8000/dashboard/c                     ddddj                  | d      }| d| }|r|d| z  }t        |       t        j                  | ||d       y )	N[PASS][FAIL][WARN]PASSFAILWARN[INFO] u    — )statustestdetail)getprintresultsappend)r   	test_namer   iconmsgs        N/home/jay/workspace/memory/reports/task-1933-screenshots/03_keyword_test_v2.py
log_resultr      sY    hAEEfhWDF!I;
Cvh	#JNNfi6JK    c                    )* t               5 } | j                  j                  d      }|j                  ddd      }|j	                         }t        d       	 |j                  t        d	       |j                  d
       |j                  t         d       t        dd|j                         t        d       d}	 |j!                  d      j"                  }|j%                  d      r |j'                          d}t        ddd       nt        ddd       |j                  d       |j                  t         d       t        d       	 |j!                  d      j"                  }|j%                  d      r/|j'                          |j                  d       t        ddd       nt        ddd        |j                  t         d!       t        d"       d}	 |j!                  d#      j"                  }	|	j%                  d      rl|	j'                          |	j)                  d$       |	j+                  d%       |	j-                         }
d%|
v rd}t        dd&d'|
 d(       nt        dd&d)|
 d(       nt        dd*d+       |j                  t         d,       t        d-       d}	 |j!                  d.      j"                  }|j%                  d      r |j'                          d}t        dd/d0       nt        dd/d1       |j                  t         d2       t        d3       d}d}d$}t/        d4      D ]  }t1        j2                  d5       t        d6|d7z    d8       	 |j!                  d9      }|j5                         }|d:kD  rst/        |      D ]a  }|j7                  |      }|j%                  d;      s'|j9                  d;      *t;        *fd<d=D              sNd}t        dd>d?| d@        n |r n	 |j!                  dA      j"                  j9                  dB      )t;        )fdCdDD              rd}t        ddEdF        n	 	 |j!                  dG      }|j5                         d:kD  r)|j"                  j%                  d;      rt        dH       e	 |j!                  dI      j9                  dB      }g dJ}|D ]  }||v sd}|}t        ddKdL| d(        n |r n |sv|st	 |j!                  dI      j9                  d      }dMdNdOdPdQdRdSdTdU}|j=                         D cg c]  \  }}||v s| }}}|rt        ddVdW|        nt        ddXdY       |j                  t         d[       t        d\       |j?                  d]       |j                  dB       |j                  t         d^       	 |j!                  d_      j"                  }|j9                  d      }t        d`       t        |d da        t        db       |rat        de       	 |j!                  df      }|jA                         } t        ddgdh| d di         t/        tC        tE        |       dj            D ]]  }	 |j7                  |      }!|!j%                  d;      r7|!j'                          |j                  d       t        ddk| |    d(dl        n_ |j                  t         dn       	 |j!                  do      }"|"j5                         }#|#d:kD  r=|"j"                  j'                          |j                  da       t        ddpdq|# dr       nt        ddsdt       |j                  t         du       |j                  t         dv       |j                          d d d        t        dw       t        dx       t        dy       tG        dz tH        D              }$tG        d{ tH        D              }%tG        d| tH        D              }&t        d}|$ d~|% d|& dtE        tH                      t        d       tH        D ]F  }'ddddjK                  |'d   d      }(t        d|( d|'d           |'d   s6t        d|'d           H t        dy       y # t        $ r8}t        ddt        |             |j                          Y d }~d d d        y d }~ww xY w# t        $ r!}t        ddt        |             Y d }~d }~ww xY w# t        $ r!}t        ddt        |             Y d }~xd }~ww xY w# t        $ r!}t        dd&t        |             Y d }~d }~ww xY w# t        $ r!}t        dd/t        |             Y d }~d }~ww xY w# t        $ r Y w xY w# t        $ r Y \w xY w# t        $ r Y w xY w# t        $ r Y w xY wc c}}w # t        $ r!}t        ddZt        |             Y d }~d }~ww xY w# t        $ ro}t        dc|        	 |j!                  dI      j9                  d      )t        dd       t        )d da        t        db       n# t        $ r Y nw xY wY d }~`d }~ww xY w# t        $ r Y w xY w# t        $ r!}t        ddmt        |             Y d }~d }~ww xY w# t        $ r!}t        ddst        |             Y d }~d }~ww xY w# 1 sw Y   GxY w)NT)headlessi  i  )widthheight)viewportz$
=== [1] Navigating to dashboard ===domcontentloaded)
wait_untili  z/03_keyword_01_loaded.png)pathr	   zDashboard navigationr
   u,   
=== [2] Clicking 네이버블로그 tab ===Fu%   button:has-text('네이버블로그')i  )timeoutu   Click 네이버블로그 tabzbutton found and clickedzTab button not visiblez/03_keyword_02_naver_tab.pngu5   
=== [3] Verifying 키워드분석 step is active ===u8   button:has-text('키워드분석'), text=키워드분석i  i  u   키워드분석 history sub-tabzSub-tab visible and clickedr   z,Sub-tab not found (may be already on Step 0)z/03_keyword_03_step0_view.pngu5   
=== [4] Typing '실손보험' into keyword input ===u2   input[placeholder*='키워드를 입력하세요'] u   실손보험u   Type keyword '실손보험'zInput value: ''zInput value mismatch: 'zKeyword input fieldzInput not visiblez/03_keyword_04_typed.pngu#   
=== [5] Clicking 분석 button ===u   button:has-text('분석')u   Click 분석 buttonzButton found and clickedzButton not visiblez/03_keyword_05_analyzing.pngz,
=== [6] Polling for results (up to 30s) ===      z
  Attempt    u-   /15 — checking for keyword results table...tabler   i,  c              3   &   K   | ]  }|v  
 y wN ).0ktxts     r   	<genexpr>zrun_tests.<locals>.<genexpr>   s     "q18"q   )
relKeyword	   검색량u   월간u   연관PCMOzKeyword analysis results tablezTable #z has keyword dataz.main, #main, .main-content, [class*='content']i  c              3   &   K   | ]  }|v  
 y wr+   r,   )r-   r.   	body_texts     r   r0   zrun_tests.<locals>.<genexpr>   s     s!qI~sr1   )r2      연관키워드   월간검색수u   PC검색량zKeyword data in main contentz(Keyword columns detected in page contentz:[class*='spinner'], [class*='loading'], [class*='Loading']z&    Still loading (spinner visible)...body)u
   API 오류u   네트워크 오류u   분석 실패u   키워드 오류u   오류가 발생u   데이터를 가져오지u   네이버 APIzKeyword analysis errorzError detected: 'zrelKeyword foundu   검색량 foundu   연관키워드 foundu   월간검색수 foundzStill analyzingzStill loading	Completedu   결과 found)r2   r3   r8   r9   u
   분석 중u   로딩u   완료u   결과zAmbiguous results statezPage contains: zNo results detectedz/Neither table nor clear error after 30s pollingzPage state checkz/03_keyword_06_after_poll.pngz+
=== [7] Scrolling to inspect full page ===zwindow.scrollTo(0, 0)z/03_keyword_07_scroll_top.pngz)main, [class*='content'], [class*='main']z+
  --- Main area text (first 800 chars) ---i   z  --- end ---
z  Could not read main area: z&
  --- Body text (first 800 chars) ---z$
=== [8] Table interaction tests ===z#th, thead td, [role='columnheader']zTable headers readablez	Headers:       zSort by column 'zClicked headerzTable header interactionz/03_keyword_08_sort.pngztbody trzClick keyword rowzClicked first of z rowszKeyword row clickz0 tbody rows foundz/03_keyword_09_selection.pngz/03_keyword_10_final.pngz=
============================================================u2   FINAL TEST SUMMARY — Naver Blog Keyword Analysisz<============================================================c              3   2   K   | ]  }|d    dk(  sd  yw)r   r	   r(   Nr,   r-   rs     r   r0   zrun_tests.<locals>.<genexpr>       A11X;&+@QA   c              3   2   K   | ]  }|d    dk(  sd  yw)r   r
   r(   Nr,   r?   s     r   r0   zrun_tests.<locals>.<genexpr>  rA   rB   c              3   2   K   | ]  }|d    dk(  sd  yw)r   r   r(   Nr,   r?   s     r   r0   zrun_tests.<locals>.<genexpr>  rA   rB   z  PASS: z  |  FAIL: z  |  WARN: z  |  TOTAL: z<------------------------------------------------------------r   r   r   r   r   r   z  r   r   r   z	         )&r   chromiumlaunchnew_contextnew_pager   gotoBASE_URLwait_for_timeout
screenshotSCREENSHOT_DIRr   url	Exceptionstrcloselocatorfirst
is_visibleclickfilltypeinput_valuerangetimesleepcountnth
inner_textanyitemsevaluateall_text_contentsminlensumr   r   )+pbrowsercontextpageetab_clickedtabkwd_tabinput_foundinpvalanalyze_clickedbtnresult_founderror_found
error_textattempttablestcitspinner	page_texterr_msgsem
indicatorsr.   vfound_indicators	main_areavisible_textheaders	hdr_textshrowsrc
pass_count
fail_count
warn_countr@   r   r7   r/   s+                                            @@r   	run_testsr      s
   		 }a**##T#2%%/M%N! 	56	IIh+=I>!!$'OON#33L!MONv5txx@ 	=>		G,,FGMMC~~d~+		"6#AC]^6#AC[\ 	d#//KLM 	FG
	Jll#]^ddG!!$!/%%d+6#DFcd6#DFtu 	//LMN 	FG	F,,STZZC~~d~+		(oo'!S("&Kv'DWZV[[\F]^v'DH_`c_ddeFfg6#8:MN 	//GHI 	45		>,,:;AAC~~d~+		"&6#8:TU6#8:NO 	//KLM 	=>
 Ry >	GJJqMJwqyk)VWXg.\\^6"2Y &"JJqM<<<4"#,,s,";C""q5p"qq/3 *63SW^_`^aarUs t %& $
 LL)YZ``kktwkx	s/rss#'Lv'EGqr t,,'cd==?Q&7==+C+CC+C+PBD LL0;;C;H	 # BY&*%'
"6+CGXY[X\\]E^_  w>	@ K? LL0;;D;I	 #5!2'>'>"3-),	
 3=2B2B2D#W$!QYA#W #W#v'@OTdSeBfgv'<>op 	//LMN 	<=-.c"//LMN	%PQWWI$///=L@A,t$%#$ 9:G,,'LM#557	6#;ySUTU=XY s3y>156 	!A!#KKN<<<4GGI 11$7&v1A)A,q/QScd!	 5	! OON#33J!KOL
@||J/ZZ\6JJ$$&))#.v):?PQSPTTY=Z[v':<PQ OON#33O!POQ 	//GHI{}@ 
-	
>?	&MAAAJAAAJAAAJ	HZLJ<{:,l[^_f[gZh
ij	&M - (HEII!H+W_`4&!F)%&X;Iak]+,	-
 
&MC  	v5s1v>MMO} }	   	Gv=s1vFF	G"  	Jv@#a&II	J,  	Fv<c!fEE	F   	>v4c!f==	>H      *  $ $X
  ?6#5s1v>>?$  	045 LL0;;D;I	?@io&'( 	: % ! ! G6#=s1vFFG  @6#6A??@m} }s  Ak,Ab3k,Ac 5k,A)d:&k,!B&d:&k,.Ae'A k,)Af&f(f k,Af$k,Af4 k,#.gg,	k,6?g5gg#g)Ak,	Ahk,)Aj?Ajjk,5A0j?%Ak,	c%&ck,ck, 	d
)d?k,d

k,	d7d2,k,2d77k,:	e$ek,e$$k,'	f0fk,fk,	f!k, f!!k,$	f1-k,0f11k,4	g=k, gk,	gk,gk,g	h#g?9k,?hk,	i?i:Ai%$i:%	i1.i:0i11i:4k,:i??k,	jjjj	j<j71k,7j<<k,?	k)k$k,$k))k,,k6__main__)r$   )__doc__rZ   sysplaywright.sync_apir   rM   rJ   r   r   r   __name__r,   r   r   <module>r      sE   
  
 /K-
LN` zK r   