🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

1449閲覧

Ruby + Selenium Webdriver + Proxy でレスポンスヘッダーを取得したい

kenkenbbb

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/12/18 02:33

前提・実現したいこと

Ruby + Selenium Webdriver を使用し、Webアプリのセレニウムテストを作成しています。

テスト項目の中で「ファイルをダウンロードできるか?」を確認したく、テストコードを実装しているのですが、
ファイル拡張子やブラウザ毎に、ダウンロード時の挙動が異なるため、実装に苦慮しております。。

プロキシサーバーを立て、トラフィックを取得することで

  • 「ダウンロードボタン実行後のレスポンスヘッダーのステータスコードが "200" か否か?」

上記判断をすることで、ダウンロードの成功可否を確認したいと思っております。

苦慮している問題

Selenium Webdriver のドキュメントには、プロキシサーバーの設定方法が記載されています。

ruby

1# this code was written with Selenium 4 2 3proxy = Selenium::WebDriver::Proxy.new(http: '<HOST:PORT>') 4cap = Selenium::WebDriver::Remote::Capabilities.chrome(proxy: proxy) 5 6driver = Selenium::WebDriver.for(:chrome, capabilities: cap) 7driver.get('http://google.com')

しかし、プロキシを立てた後に、どのような実装方法でレスポンスヘッダーを取得できるのかが分かっていません。。。

試したこと

browsermob-proxy というgem を利用することで、トラフィックを取得して、レスポンスヘッダーを取得できそうなのですが、
該当ドキュメントを見る限り、どのような実装でセレニウムテストに埋め込めるのかが分からずでした。。

補足情報(FW/ツールのバージョンなど)

使用ブラウザ

  • Chrome
  • Firefox

開発言語

  • Ruby

使用ツール

  • Selneium Webdriver
  • Cucumber

質問事項

  • Ruby + Selenium Webdriver + Proxy でレスポンスヘッダーを取得する方法として、どのような実装があるのでしょうか?

拙い質問で恐縮ですが、実装の参考になるアドバイスをご教授頂けると幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プロキシを立てた後に、どのような実装方法でレスポンスヘッダーを取得できるのかが分かっていません。。。

??

自分で、

プロキシサーバーを立て、トラフィックを取得することで

とお書きでは?
トラフィックを取得する機能を持ったプロキシーサーバーを立てたのですよね?では取得すれば良いです。

投稿2020/12/18 10:31

編集2020/12/18 10:32
otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenkenbbb

2020/12/20 08:10

> トラフィックを取得する機能を持ったプロキシーサーバーを立てたのですよね?では取得すれば良いです。 ご指摘の通り、プロキシサーバーを立てているので、トラフィックを取得する方法がベストですね。 Selenium Webdriver + browsermob-proxy(gem) を利用した実装例が見当たらず、実装方法に苦慮していたため、一般的な手法として何があるのだろうか?と思い質問させて頂いた次第でした。 コードベースでトラフィックをどう取得するのか?は、本質問とはスコープが異なるため、 実装コードについてはもう少し自分で調べてみます。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問