WebDriverを使う

WebDriverを使ってブラウザーを操作するものとしてSeleniumが有名だが、WebDriverがW3C - WebDriverに沿っていればUsage — Firefox Source Tree Docs 78.0a1 documentationで示されているようなコマンドでブラウザーを操作できる。
  1. WebDriverを取得する
    Firefox
    Releases · mozilla/geckodriver · GitHubからダウンロードする
  2. WebDriverを起動する./geckodriver -b /usr/bin/firefox &-bでFirefoxのバイナリーのパスを指定した。
    geckodriverでポートの指定をしないとポート4444を使う。
  3. コマンドを送信するためのターミナルを開く
  4. sessionIdを取得するcurl -H 'Content-Type: application/json' -d '{"capabilities": {"alwaysMatch": {"acceptInsecureCerts": true}}}' http://localhost:4444/sessionセッションの確立に成功するとブラウザーが起動する。
  5. コマンドを実行する
    ページを開く
    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
タグ