clj-webdriver 소개
5702 단어 Clojure
clj-webdriver는 clj-webdriver의 프런트 엔드이며 Clojure 스트림 API를 사용하여 브라우저를 조작 할 수 있습니다.
Ruby를 사용하면 Selenium-WebDriver과 같을 수 있다고 생각할 수 있으므로 스크래핑하여 다양한 방법으로 사용할 수 있습니다.
$ lein new webdriver-test
project.clj에 clj-webdriver를 추가하십시오.
project.clj
(defproject webdriver-test "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
- :dependencies [[org.clojure/clojure "1.5.1"]])
+ :dependencies [[org.clojure/clojure "1.5.1"]
+ [clj-webdriver "0.6.0"]])
$ lein deps
clj-webdriver를 사용하면 taxi라는 하이 레벨 API를 사용하여 탐색 할 수 있습니다. 입니다.
(ns webdriver-test.core
(:use [clj-webdriver.taxi]))
;; Qiitaトップページにアクセス
(set-driver! {:browser :firefox} "https://qiita.com")
이제 Firefox가 시작되어 Qiita의 톱 페이지를 엽니 다.
Mechanize
트위터를 통해 로그인하려면 hashmap에서 태그 및 속성 정보를 전달하고
find-element
(후보를 모두 반환 할 때 find-elements
)로 필터링하고 click
합니다.;; Twitter経由でQiitaにログイン
(click (find-element {:tag :a, :data-provider "Twitter"}))
양식 입력은
quick-fill-submit
가 유용합니다. CSS 선택기에서 #idhoge
를 쓰고 값을 넣고 마지막으로 제출합니다.;; TwitterにログインしてQiitaのアクセスを許可
(quick-fill-submit {"#username_or_email" "T_Hash"}
{"#password" "weiwei"}
{"#allow" submit})
이제 Qiita에 로그인 할 수있었습니다. 내 스톡에서 clojure 태그가있는 게시물을 검색해보십시오.
vim-fireplace
;; 自分のストックを表示してclojureタグで検索
(click (find-element {:tag :a, :href "/stock"}))
(quick-fill-submit {"*[name=q]" "tag:clojure"
"button[type=submit]" submit})
;; スクリーンショットも取れます
(take-screenshot :file "./screenshot.png")
;; 結果articleをすべて抜き出して加工するところまで書きたかったけど時間足りなくなった
;; (find-elements {:tag :article})
(quit)
스크린 샷을 사용할 수 있으므로 (Selenium 자체의 기능이지만) 간단한 작업을 자동화하는 데에도 사용할 수 있습니다.
Reference
이 문제에 관하여(clj-webdriver 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hash/items/30ea7aee76c8179e12e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)