안녕하세요, 차가운 운영자입니다.
클리커(Klicker)의 스크립트 유닛에서 사용되는 인터페이스 변수와 그 사용 방법을 정리해 보았습니다.
먼저 클리커에서 사용되는 주요 인터페이스 변수들은 다음과 같습니다.
ux.df, ux.ws, ux.el, ux.kl, ux.id, ux.cd, @BROWSER, @PATH, @RPATH, @OPATH, @PAGENO, @CURNO
1. 데이터프레임 변수 : ux.df
ux.df : (x는 클리커에 탑재된 유닛의 번호)
-. x번 유닛이 '검색' 유닛인 경우 :
탑재된 엑셀 파일(.csv, .xlsx) 파일이나 구글 스프레드시트로부터 읽어들인 Dataframe 타입의 데이터셋 입니다.
-. x번 유닛이 '텍스트 추출' 유닛인 경우 :
메인태그나 서브필터로부터 추출된 텍스트가 저장되는 Dataframe 타입의 데이터셋입니다.
스크립트 유닛에서 Python Pandas의 Dataframe의 명령어를 모두 사용할 수 있습니다.
2. 구글 스프레드시트 변수 : ux.ws
ux.ws : (x는 클리커에 탑재된 유닛의 번호)
구글 스프레드시트로부터 읽어들인 셀 데이터들이 저장된 Worksheet 데이터셋 변수입니다.
x번 유닛이 '검색' 유닛인 경우 :
탑재된 구글 스프레드시트로부터 읽어들인 Worksheet 타입의 데이터셋입니다.
사용 예 :
1) Worksheet의 A2의 값을 변경하여 저장하는 방법
ux.ws.update('A2', 'Hello world')
2) Worksheet의 A1과 A4의 값을 더하여 A5에 저장하는 방법
ux.ws.update('A5', '=SUM(A1:A4)', raw=False)
3) Worksheet 의 타이틀(sheet 명)을 변경하는 방법
ux.ws.update_title('판매현황')
4) Worksheet에서 데이터프레임으로 데이터 가져오기
ux.df=pd.DataFrame(ux.ws.get_all_records())
5) 데이터 프레임의 데이터를 Worksheet 에 Update하기
u1.ws.update([U1.df.columns.values.tolist()] + u1.df.values.tolist()) # ws에 저장
아래의 사이트를 통해 변수에 대한 사용 방법을 익힐 수 있습니다.
https://docs.gspread.org/en/latest/api.html
3. 브라우저 태그로부터 추출된 엘러먼트 변수 : ux.el
ux.el : (x는 클리커에 탑재된 유닛의 번호)
메인태그나 서브 필터로 부터 추출된 웹페이지 태그 엘러먼트들을 저장하고 있는 list 타입의 엘러먼트 데이터셋입니다.
사용 예 :
다음은 메인태그나 서브필터로부터 추출된 엘러먼트들을 필터링하는 예입니다.
1) 엘러먼트들 중에 'name' 이라는 어트리뷰트가 없는 엘러먼트들만 추출하고자 하는 경우
ux.el = [el for el in U1.el if el.get_attribute('name') is None]
2) 얼러먼트들 중에 'class' 이라는 어트리뷰트가 있고 'country' 라는 단어가 들어가 있는 엘러먼트들만 추출하고자 하는 경우
ux.el = [el for el in U1.el if el.get_attribute('class') is not None and el.get_attribute('class').find('country') >= 0]
3) 얼러먼트들 중에 텍스트에 '수량'이라는 단어가 포함된 엘러먼트들만 추출하고자 하는 경우
ux.el = [el for el in U1.el if el.text.find('수량') >= 0]
4) 얼러먼트들 중에 'outerHTML'라는 어트리뷰트에서 '블랙박스'라는 단어가 있는 엘러만트들을 추출하고자 하는 경우
ux.el = [el for el in U1.el if el.get_attribute('outerHTML').find('블랙박스') >= 0]
4. 키클릭 유닛에서 발생된 키클릭 링크드 얼러먼트 리스트 : ux.kl
ux.kl : (x는 클리커에 탑재된 유닛의 번호)
키클릭 유닛이 실행되면 직전의 메인태그나 서브필터로 부터 웹페이지를 클릭하기 위한 링크드 엘러먼트들이 만들어집니다.
그 중에서 제일 첫번째 엘러먼트에 대하여 클릭이 실행되고 나머지 링크드 얼러먼트 리스트들은 ux.kl에 저장이 됩니다.
그 후 첫 번째 얼러먼트에 대한 모든 추출 작업이 끝나고 다시 위 유닛이 호출이 될 때 링크드 얼러먼트 리스트에 저장된 두번째 얼러먼트가 호출이 됩니다.
5. 테스크 내의 유닛 변수 : ux.id, ux.cd
ux.id : (x는 클리커에 탑재된 유닛의 번호, ID는 dict 타입의 input 변수)
ux.cd : (x는 클리커에 탑재된 유닛의 번호, CD는 dict 타입의 combo 변수)
테스크에 탑재된 유닛별로 가지고 있는 인터페이스 변수로 스크립트에서 사용 할 수 있습니다.
6. 기타 공통 변수
@BROWSER : 현재 실행 중에 있는 클리커 브라우저(드라이버)
@PATH : 클리커 홈 경로
@RPATH : 클리커의 recipe 가 탑재되고 저장되는 Default 경로
@OPATH : 클리커의 Outut 경로
@PAGENO : 페이지 네이션의 현재 페이지 번호(테스크가 시작 되는 시점에서 1이라는 페이지 번호를 가짐)
@CURNO : 현재 실행 중인 유닛 번호
@CB : 클립보드 값을 가지고 있는 변수
스크립트 유닛에서 이 값을 변경한 경우 해당 유닛으로 점프하게 됩니다.
이상입니다.