PuppeteerがロードされたページでXHRリクエストを傍受し、モックレスポンスを返すことができるようにする必要があります。これを行う最善の方法は何ですか?PuppeteerのページでXHRリクエストを傍受し、モックレスポンスを返すための最良の方法
答えて
最新の人形では、この状況に対処する方法はrequest.respond()
です。
誰かが興味があれば、テストのニーズに合わせて特別なアプリケーションビルドを作成しました。これはPretenderをページに追加します。そして、Puppeteerのevaluate
メソッドを使用してPretenderサーバーと通信します。
これは理想的ではありませんが、私はPuppeteerだけで必要なものを達成する方法を見つけることができませんでした。 Puppeteerでリクエストをインターセプトする方法はありますが、リクエストに対して偽のレスポンスを返す方法はありません。
UPDATE:Xルネmentionedとして
request.respond()方法を使用して、人形遣いのv0.13.0で、このためのネイティブサポートは、今そこにあります。 Pretenderの代わりに使用するようにテストを書き直すつもりです。これは私にとって多くのことを単純化するためです。
実際に行く方法はrequest.respond()
だと思いますが、Webで具体的な例を見つけられませんでした。私がやったやり方は次のようなものでした:
// Intercept API response and pass mock data for Puppeteer
await page.setRequestInterception(true);
page.on('request', request => {
if (request.url === constants.API) {
request.respond({
content: 'application/json',
headers: {"Access-Control-Allow-Origin": "*"},
body: JSON.stringify(constants.biddersMock)
});
}
else {
request.continue();
}
});
正確にはどうなりますか?
- まず、すべての要求が、私は
constants.API
は私が一致する必要があるだけのエンドポイントであるif (request.url === constants.API)
とURLでそれを照合することによって、私が興味を持って1を探して、各要求のために、そして、page.setRequestInterception()
- で傍受されています。
- が見つかった場合、私はそう私はちょうど要求が
request.continue()
つ以上のポイントを継続させ、request.respond()
と私自身の応答を渡す:上記
constants.biddersMock
がCORSヘッダがある配列- ですあなたのモックデータへの重要なアクセスやアクセスは許可されません。
コメントしてくださいより良い例を持つリソース。
これはこれを行う正しい方法です。しかし、 'Access-Control-Allow-Origin'はオプションで、特定の設定に依存します。 –
ありがとう、これを確認してください! –
- 1. XHRを傍受する
- 2. テーブルアイテムのクリックイベントを傍受する最も良い方法
- 3. コントロールレンダリングを傍受する最良の方法
- 4. WebApiプロジェクトでメンテナンスのためにフィルタチェーンを傍受する方法
- 5. 非同期のxhrリクエストで値を返す方法は?
- 6. Spring Boot - JSONデータを返すための最良の方法
- 7. フレックスツリーの最後に開いた/展開したノードを傍受する方法
- 8. Dojo - XHR呼び出しを傍受する
- 9. レジストリ傍受のための迂回方法
- 10. "ページ"としてPHPインクルードファイルを読み込むための最良の方法
- 11. JQueryでURLを傍受する方法
- 12. Webviewリクエストを傍受するXaml
- 13. SOAPリクエストが「自分の」HTMLページから来るようにするための最良の方法
- 14. リアルタイムマルチプレイヤーアンドロイドでアップデートをプッシュするための最良の方法
- 15. フレックスでスプライトをアニメーション化するための最良の方法
- 16. AngularJSはすべての$ httpリクエストを傍受します
- 17. クロスドメインXHRリクエストの作成方法
- 18. サービスワーカーを使用して、自分のサイトの最初の負荷でリクエストを傍受しますか?
- 19. httpリクエストを行う最良の方法は何ですか
- 20. WCFで巨大なリクエストを処理する最良の方法
- 21. バックグラウンドでリクエストを設定する最良の方法
- 22. Content Based Routingでキャメルテストを書くための最良の方法
- 23. のJavaを配布するための最良の方法は、
- 24. オフラインのウェブサイトを配信するための最良の方法
- 25. トピックの「ビュー」を格納するための最良の方法
- 26. spacemacsのido-diredをアンバインドするための最良の方法
- 27. Cmd + Qを傍受する方法
- 28. SQLトラフィッククライアント側を傍受する方法
- 29. Android:新しいデータでアクティビティを埋めるための最良の方法
- 30. PHPを使用してXMLデータを受信し、処理して返す最良の方法は何ですか?
これは現在実装されていることをよく知っています。これを受け入れられた回答としました。 –