(wait-visible {:fn/text "고객센터"})
쉽게 말하면 셀레니움 같은거이다.
clojure 에서 쉽게 webdriver 를 사용할수있는 라이브러리
간단하게 사용법을 살펴보면
드라이버 설정
(def driver (chrome)) ; chrome 사용
(def driver (chrome-headless)) ;headless
(def driver (chrome-headless {:path-driver ".//path"})) ;드라이버 경로지정
이동
(go driver "https://en.wikipedia.org/") ;이동
(wait-visible driver [{:id :simpleSearch} {:tag :input :name :search}]) ;해당 요소가 보일때까지 대기
(wait driver 3) ;시간 대기
(fill driver {:tag :input :name :search} "Clojure programming language") ;해당 요소에 값채우기
(fill driver {:tag :input :name :search} k/enter) ; 엔터
쿼리
{:tag :div :id :date} ; div이면서 id 가 date
;<div id="date"/>
[{:tag :div} {:id :date} ]
;<div>
; <아무태그 id="date"/>
;</div>
;index로 순서를 정할수있다, 1부터 시작하는듯
{:tag :div :id :date :index 2} ; div이면서 id 가 date인 애들중 2번째
;has-class 심볼을 이용해서 여러 class를 가지고있는지 확인가능
{:tag :a, :fn/has-classes [:abc :def]}
내용으로 쿼리
그래 이게 없을리 없지 쿼리에 :fn/text 를 사용
(wait-visible {:fn/text "검색"})
쿼리 함수
query/ query-all 을 사용하면 유니크한 id를 밷는다 (xpath id?)
(query driver {:tag :button :fn/text "Press Me"})
(query-all driver {:css "li.search-result a"}
내용 가져오기
get-어쩌고 꼴의 함수를 사용한다.
get-어쩌고는 바로 검색조건을 넣어야하고 get-어쩌고-el 은 위의 쿼리로 가져온 데이터를 넣으면된다.
(get-element-inner-html driver {:tag :div}) ; 첫번째 div 의 html 코드
(get-element-attr-el driver data :href) ; data는 query 함수로 찾은 엘리먼트, data의 href값
728x90
'프로그래밍 언어 노트 > Clojure' 카테고리의 다른 글
[Clojure] 종합선물세트(?) 같은 라이브러리 (0) | 2020.12.09 |
---|---|
[Clojure] clojure to xlsx (Excel) (0) | 2020.06.23 |
[PS/Clojure] HackerRand - Algorithms - Construct the Array (0) | 2020.06.05 |
Clojure로 만든 간단한 PDF 내용 수정 프로그램 (0) | 2020.03.14 |
[Clojure] Clojure 와 Haskell 의 DSL 비교 (0) | 2020.01.24 |