
    `i:                     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
Task: Test the 네이버블로그 keyword analysis feature on dashboard
    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        K/home/jay/workspace/memory/reports/task-1933-screenshots/03_keyword_test.py
log_resultr      sY    hAEEfhWDF!I;
Cvh	#JNNfi6JK    c                  8   t               5 } | j                  j                  d      }|j                  ddd      }|j	                         }t        d       	 |j                  t        d	       |j                  d
       |j                  t         d       t        ddd|j                          t        d       	 g d}d}|D ]T  }	 |j!                  |      j"                  }|j%                  d      r$|j'                          d}t        ddd|         nV |s2|j!                  d      j)                         }	t        ddd|	d d         |j                  d       |j                  t         d       t        d       	 g d }
d}|
D ]e  }	 |j!                  |      j"                  }|j%                  d      r5|j'                          |j+                  d!       d}t        dd"d|         ng |s't        dd"d#       |j                  t         d$       n|j                  t         d%       t        d&       	 g d'}d}|D ]T  }	 |j!                  |      j"                  }|j%                  d      r$|j'                          d}t        dd(d|         nV |sI|j!                  d)      j)                         }t        dd(d*|        |j                  t         d+       n|j                  t         d,       t        d-       d}d}d.}g d/}g d0}t-        d1      D ]  }t/        j0                  d2       t        d3|d4z    d5       |D ]]  }	 |j!                  |      }|j3                         d6kD  r6|j"                  j%                  d7      rd}t        dd8d| d9|d4z            n_ |r nx|D ]l  }	 |j!                  |      }|j3                         d6kD  rE	 |j"                  j5                  d7      }|j7                         rd}t        dd:d;|d d<          n	 n |s n |s|st        dd=d>       |j                  t         d?       t        d@       |rt        dA       g dB}g }|D ];  }	 |j!                  dC|       }|j3                         d6kD  r|j9                  |       = |rt        ddDdE|        n3	 |j!                  dF      j)                         }t        ddGdH|d dI         t        dK       d}	 |j!                  dF      }|j3                         }|d6kD  rt-        t;        |dL            D ]n  }	 |j=                  |      }|j%                  d7      rH|j5                  d7      }|j'                          |j                  dM       d}t        ddNdO| dP        np |st        ddQdR       |j                  t         dS       t        dT       t        dU       d}	 g dV} | D ]  }	 |j!                  |      }!|!j3                         }|d6kD  rV|!j"                  }"|"j%                  d7      r8|"j'                          |j                  dM       d}t        ddWd| dX|         n |st        ddYdZ       |j                  t         d[       t        d\       	 |j!                  d]      j3                         }#|#d6kD  rt        dd^d_|#        nt        dd`da       n9|r7t        dc       t        dddde|d df         |j                  t         dg       |j                  t         dh       |j                          d d d        t        di       t        dj       t        dk       t?        dl t@        D              }$t?        dm t@        D              }%t?        dn t@        D              }&t        do|$        t        dp|%        t        dq|&        t        drtC        t@                      t        dk       t@        D ]F  }'dsdtdudvjE                  |'dw   dx      }(t        dy|( dz|'d{           |'d|   s6t        d}|'d|           H y # t        $ r8}t        ddt        |             |j                          Y d }~d d d        y d }~ww xY w# t        $ r Y w xY w# t        $ r:}t        ddt        |             |j                  t         d       Y d }~d }~ww xY w# t        $ r Y 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!}t        dd(t        |             Y d }~od }~ww xY w# t        $ r Y 2w xY w# t        $ r Y ow xY w# t        $ r Y w xY w# t        $ r Y ;w xY w# t        $ r}t        ddGdJ|        Y d }~d }~ww xY w# t        $ r Y w xY w# t        $ r!}t        ddQt        |             Y d }~]d }~ww xY w# t        $ r Y *w xY w# t        $ r!}t        ddYt        |             Y d }~d }~ww xY w# t        $ r!}t        ddbt        |             Y d }~Nd }~ww xY w# 1 sw Y   /xY w)~NT)headlessi  i  )widthheight)viewportz$
=== [1] Navigating to dashboard ===domcontentloaded)
wait_untili  z#/03_keyword_01_dashboard_loaded.png)pathr	   zDashboard navigationzURL: r
   u,   
=== [2] Clicking 네이버블로그 tab ===)u%   button:has-text('네이버블로그')u   text=네이버블로그u+   [role='tab']:has-text('네이버블로그')u    a:has-text('네이버블로그')u!   li:has-text('네이버블로그')u"   div:has-text('네이버블로그')Fi  )timeoutu   Click 네이버블로그 tabz
selector: zbutton, [role='tab'], a, lir   z Tab not found. Available texts:    i  z$/03_keyword_02_naver_tab_clicked.pngz"/03_keyword_02_naver_tab_error.pngu*   
=== [3] Typing keyword '실손보험' ===)u2   input[placeholder*='키워드를 입력하세요']u5   textarea[placeholder*='키워드를 입력하세요']u   input[placeholder*='키워드']zinput[type='text']zinput[type='search']u   [placeholder*='키워드']u   실손보험u   Type keyword '실손보험'zInput field not foundz/03_keyword_03_input_error.pngz /03_keyword_03_keyword_typed.pngu#   
=== [4] Clicking 분석 button ===)u   button:has-text('분석')u   input[value='분석']z[type='submit']zbutton[type='submit']u   text=분석u   Click 분석 buttonbuttonz%Button not found. Available buttons: z /03_keyword_04_analyze_error.pngz"/03_keyword_04_analyze_clicked.pngz,
=== [5] Waiting for results (up to 30s) === )tablez[role='table']z.results-tablez.keyword-resultstbody trz[class*='result']z[class*='table'])z[class*='error']z[class*='Error']z.error-messagez[role='alert']u   text=오류u   text=에러u   text=실패z
text=Error      z  Polling attempt    z/15...r   i  zResults appearedz, attempt: zError appearedzError text:    zWaiting for resultsz/Neither results table nor error found after 30sz/03_keyword_05_results.pngz-  Screenshot saved: 03_keyword_05_results.pngz'
=== [7] Testing table interactions ===)
relKeywordsearchVolumeu	   키워드u	   검색량u   월간검색수u   연관키워드ztext=zKeyword data columns presentzFound: z#th, thead td, [role='columnheader']zKeyword data columnszHeaders found: 
   zCould not read headers: z"  Testing column header sorting...   i  z!Clicked column header for sortingz	Column: ''zColumn header sortingz No sortable column headers foundz/03_keyword_06_after_sort.pngz0  Screenshot saved: 03_keyword_06_after_sort.pngz"  Testing keyword row selection...)r(   z[role='row']ztable tr:not(:first-child)z.result-rowz[class*='row']zClicked keyword rowz, rows: zKeyword row clickzCould not click any result rowsz"/03_keyword_07_after_selection.pngz5  Screenshot saved: 03_keyword_07_after_selection.pngr(   zResults table has data rowszRow count: zResults table data rowszTable exists but has 0 rowszResults table row countz
=== [ERROR DOCUMENTED] ===zAnalysis returned errorzError: i,  z/03_keyword_06_error_state.pngz/03_keyword_08_final_state.pngz=
============================================================zTEST SUMMARYz<============================================================c              3   2   K   | ]  }|d    dk(  sd  yw)r   r	   r+   N .0rs     r   	<genexpr>zrun_tests.<locals>.<genexpr>E       A11X;&+@QA   c              3   2   K   | ]  }|d    dk(  sd  yw)r   r
   r+   Nr3   r4   s     r   r7   zrun_tests.<locals>.<genexpr>F  r8   r9   c              3   2   K   | ]  }|d    dk(  sd  yw)r   r   r+   Nr3   r4   s     r   r7   zrun_tests.<locals>.<genexpr>G  r8   r9   z  PASS: z  FAIL: z  WARN: z	  TOTAL: 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all_text_contentsfillrangetimesleepcount
inner_textstripr   minnthsumr   lenr   ))pbrowsercontextpageetab_selectorstab_clickedselelembuttonsinput_selectorsinput_foundanalyze_selectorsanalyze_clickedall_buttonsresult_founderror_found
error_texttable_selectorserror_selectorsattemptelemsdata_columnsfound_columnscolheaderssort_clickedrR   ihdrhdr_textrow_clickedrow_selectorsrows	first_row	row_count
pass_count
fail_count
warn_countr6   status_icons)                                            r   	run_testsr      s)   		 fa**##T#2%%/M%N! 	56	IIh+=I>!!$'OON#33V!WOXv5txxj7IJ 	=> 	XM  K$ 	<<,22Dt4

&*"6+IZX[W\K]^	 5	 ,,'DEWWY6#AEefmnqoqfresCtu!!$'OON#33W!XOY 	;<	FO  K& 
	<<,22Dt4

		.1&*"6+HJWZV[J\] 5
 6#@BYZ'77U%VW'77W%XY 	45	>! $O( 	<<,22Dt4

*."6+@JseBTU	 5	 #"ll84FFH6#8<abman:op'77W%XY'77Y%Z[ 	=>

	
 Ry #	GJJqM&w{m6:; '  LL-E{{}q(U[[-C-CC-C-P'+"6+=C5P[\cde\e[f?gh  '  LL-E{{}q(!).)?)?)?)LJ)//1.2 *63C|T^_c`cTdSeEf g %  2 G#	J Kv46gh 	//IJK=? <= zLM#  LL57E{{}q(%,,S1	 6#AW]OC\]_"ll+PQcceGv'=QXY\Z\Q]P^?_`
 67 LD,,'LM19"3ua=1 %
%")++a.C"~~c~:+.>>#>+F #		 $ 5 5d ;/3 *65V[demdnnoYp q %  ;%  6#:<^_OON#33P!QORDF 67K@! ) !C!#||C0 $

 19(,

I(33C3@ ) 1 $ 5 5d ;.2 *63HJWZV[[cdicjJk l %!" 6#68YZOON#33U!VOWIKF LL4::<	q=v'DT]S^F_`v'@B_` 02v8GJtPSDTCU:VWOON#33Q!ROS 	//MNOM	fR	 
-	.	&MAAAJAAAJAAAJ	HZL
!"	HZL
!"	HZL
!"	Ic'l^
$%	&M -'8LPPQRS[Q\^fg;-q6,-X;Iak]+,	-Q	  	v5s1v>MMOf f	4 !   	Xv=s1vFOON#33U!VOWW	X4 !   	Fv<c!fEE	F, !   	>v4c!f==	>R ! "  ) ! !  2 !  ! _v'=AYZ[Y\?]^^_(  ) %$% D6#:CFCCD@ % ! ! @6#6A??@   F6#<c!fEEFwf fs  AjAa-4j cAb1A"c=j	dA d5Ad;jeAe"A(e
AjAf7j$f!*Af+j-f!.j4Aj8f1>j2gj>g8A)g(<g8 A j	h5A:h%h5	3j=Ai"?A#j-	b.6&b)j)b..j1	b>:c=b>>c	d
/c?9j?dj	dddd	e d<6j<ej	eeee	e>e93j9e>>j	f	
jf	j	f	f!f	f!!	f.	*j-f.	.j1	f>:j=f>>j	g%
g j g%%j(	g51g84g55g88	h"hjh""j%	h2.h51h22h55	i>ijij"	j+jjjjj__main__)r&   )__doc__rP   sysplaywright.sync_apir   rD   rA   r   r   r   __name__r3   r   r   <module>r      sE   
  
 /K-
Ly-v	 zK r   