WebDriverを使う
WebDriverを使ってブラウザーを操作するものとして
Seleniumが有名だが、WebDriverが
W3C - WebDriverに沿っていれば
Usage — Firefox Source Tree Docs 78.0a1 documentationで示されているようなコマンドでブラウザーを操作できる。
- WebDriverを取得する
- Firefox
- Releases · mozilla/geckodriver · GitHubからダウンロードする
- WebDriverを起動する
./geckodriver -b /usr/bin/firefox &
-bでFirefoxのバイナリーのパスを指定した。
geckodriverでポートの指定をしないとポート4444を使う。
- コマンドを送信するためのターミナルを開く
- sessionIdを取得する
curl -H 'Content-Type: application/json' -d '{"capabilities": {"alwaysMatch": {"acceptInsecureCerts": true}}}' http://localhost:4444/session
セッションの確立に成功するとブラウザーが起動する。
- コマンドを実行する
- ページを開く
curl -H 'Content-Type: application/json' -d '{"url": "http://blog.i-o.io"}' http://localhost:4444/session/{取得したsessionId}/url
curl -H 'Content-Type: application/json' -d '{"url": "http://i-o.io"}' http://localhost:4444/session/{取得したsessionId}/url
- 戻る
curl -H 'Content-Type: application/json' -d '{}' http://localhost:4444/session/{取得したsessionId}/back
- 進む
curl -H 'Content-Type: application/json' -d '{}' http://localhost:4444/session/{取得したsessionId}/forward
- XPathで要素を探してelementIdを取得する
curl -H 'Content-Type: application/json' -d '{"using": "xpath", "value": "{要素のXPath}"}' http://localhost:4444/session/{取得したsessionId}/element
- 成功すると
{"value":{"{文字列}":"{elementId}"}}
が返る。
- 要素をクリックする
curl -H 'Content-Type: application/json' -d'{}' http://localhost:4444/session/{取得したsessionId}/element/{取得したelementId}/click
オプション-H
を追加 (2021/07/11)
当時はこのオプションがなくても動いたが、改めて試すと動かないw
リクエストヘッダーにコンテンツがJSONであることをつける。
2020/05/18 06:52