Webサイトへのログインとフォームの送信を自動化しようとしています。
HTTP GETおよびPOSTリクエストを後で再生できる形式でリクエストを記録できるブラウザプラグイン(FirefoxまたはChrome用)はありますか? curlやwgetなどを使用して、スクリプトから自動化できるもの。
Chrome開発者ツールを使用してPOST=フォームデータをキャプチャしようとしましたが、wgetでリクエストを複製しようとするとエラーが発生します。理想的には、多くの試行錯誤を行うのではなく、これを実行するニースの自動化された方法があるでしょう。
単純な対話の場合、リクエストを記録および再生するSeleniumのようなツールは実際には必要ありません。
既に言及したツールのみが必要です。
curl
とwget
は両方ともcookieとPOST dataをサポートしていますが、自動化のためにcurlを試しただけです。適切に実行する必要があるいくつかの重要な手順があります(これにはある程度の経験が必要です)。
curl
とwget
のすべての適切なオプションを使用する必要があります。これにより、Cookieとリダイレクトが適切に処理されます。これは、ISPからブロードバンドの使用状況をダウンロードするために書いた 自動化スクリプト のために書いた3つのcurl呼び出しのサンプルです。
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie-jar "$COOKIES_PATH.txt" \
'https://idp.optusnet.com.au/idp/optus/Authn/Service?spEntityID=https%3A%2F%2Fwww.optuszoo.com.au%2Fshibboleth&j_principal_type=ISP' >$USAGE_PATH-1.html 2>&1 && sleep 3 &&
# --location because the previous request returns with a series of redirects "302 Moved Temporarily" or "302 Found"
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie "$COOKIES_PATH.txt" \
--cookie-jar "$COOKIES_PATH.txt" \
--referer 'https://idp.optusnet.com.au/idp/optus/Authn/Service?spEntityID=https%3A%2F%2Fwww.optuszoo.com.au%2Fshibboleth&j_principal_type=ISP' \
--data "spEntityID=https://www.optuszoo.com.au/shibboleth&j_principal_type=ISP&j_username=$OPTUS_USERNAME&j_password=$OPTUS_PASSWORD&j_security_check=true" \
'https://idp.optusnet.com.au/idp/optus/Authn/Service' >$USAGE_PATH-2.html 2>&1 && sleep 1 &&
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie "$COOKIES_PATH.txt" \
--cookie-jar "$COOKIES_PATH.txt" \
--referer 'https://www.optuszoo.com.au/' \
'https://www.optuszoo.com.au//r/ffmu' >$USAGE_PATH-3.html 2>/dev/null
--cookie-jar
、--cookie
、および--location
の注意深い使用に注意してください。 sleep
s、--user-agent
、および--referer
は必要ないかもしれません(バックエンドはチェックしないかもしれません)が、エラーの可能性を最小限にするためにそれらを含めるのに十分単純です。
この例では、幸運なことに、動的なPOSTフィールド、たとえば、アンチCSRFナンスフィールドなど、抽出して後続のリクエストに渡す必要があったフィールドがありませんでした。他の種類のWebインタラクションを自動化するには、ユーザーが既にログインした後、これらの動的に生成されたフィールドの多くに遭遇する可能性があります。
正確にはブラウザのプラグインではありませんが、 Fiddler は、やり取りされるすべてのHTTPデータをキャプチャできます。 FiddlerScript または FiddlerCore を使用すると、 export をテキストファイルに-そしてそれをcURLに要求ヘッダーおよび要求本文として渡すのは簡単です。
Firefoxでは、PersistオプションのFirebugを有効にして、[〜#〜] post [〜#〜]。次に、 "Bookmark POST" アドオンをインストールして使用し、後で使用するために[〜#〜] post [〜#〜]リクエストをブックマークします。
Firefox Firebugには既にWebリクエストをcurlリクエストとしてコピーできる機能があります。そのため、コマンドラインにリクエストのさまざまな要素がすべて表示されます。
Firebugをオンにして、Netパネルでリクエストを右クリックし、Copy as cURLを選択します。次に、curl
で使用します https://hacks.mozilla.org/2013/08/firebug-1-12-new-features/#copyAsCURL
Selenium を試しましたか?
選択する方法が多すぎます。
FirefoxおよびSelenium IDEを使用します。ブラウザのアクションを記録できます
ユーザーSelenium Webドライバー。 RubyまたはJavaで記述したスクリプトにより、さまざまなブラウザーアクションをシミュレートできます。
Firefoxのマクロプラグインを使用して、絶対クリックとキー入力をシミュレートします。
OSレベルのマクロアプリケーションを使用して、3と同じ操作を行います。
実際のフォームポストまたはCookieの相互作用をシミュレートするスクリプト(PHPなど)を記述します。
No.1は一般的で使いやすいです。 No.4は強力ですが、自動化を磨くには時間が必要です。
No.3はNo.4とNo.1の中間です。 No.2は、環境テストとストレステストのツールにもなります。 No.5は、最も柔軟でリソースを節約しているようです。
リクエストメーカーchromeプラグインはそれを行います。 https://chrome.google.com/webstore/detail/request-maker/kajfghlhfkcocafkcjlajldicbikpgnp?hl=en
最近、私はこの美しいchromeあなたが尋ねるものを行う拡張機能を横切ってカムします: Katalon Recorder
Katalon Recorderを使用すると、テストの自動化が非常に簡単になります。
記録、再生、速度制御によるデバッグ、一時停止/再開、ブレークポイント機能。
Selenium 3コアエンジンを搭載した他の拡張機能と比較して、最速の実行速度をお楽しみください。
XPathとCSSを含む複数のロケータータイプを使用します。
元のSelenium IDEコマンド(Selenese)、さらにif ... elseIf ... else ... endIfおよびwhile ... endWhileブロックステートメントを使用します。ファイル入力制御のテストがサポートされています。
データ駆動型テストのために、CSVファイルからテストデータをインポートします。
ログ、スクリーンショットのキャプチャ、Katalon Analyticsの履歴データと分析で簡単にレポートします。
スイートでテストケースを作成および整理します。自動保存機能で作業内容を失わないでください。
元のSelenium IDE(Firefox拡張機能)テストをインポートします。
これらのフレームワークのSelenium WebDriverスクリプトにエクスポート:C#(MSTestおよびNUnit)、Java(TestNGおよびJUnit)、Ruby(RSpec)、Python(unittest)、Groovy(Katalon Studio)、Robot Framework、およびXML。
Safari開発者ツールとFirebugで十分です。