1

私はWatirを使用してアプリケーションにログインしたり、いくつかのボタンを押したりしています...基本的には人がWatirを使用する通常のものです。

ただし、私の問題は、テストする必要のある特定のページが1つあることです。これは実際には動的に生成されたPDFであり、使用している特定のgemを使用してロードできるように、実際のバイナリデータを取得する必要があります。これは通常、静的PDFファイルで機能します。これは、次のものを使用できるためです。

    open("http://site.com/something.pdf")

これは静的PDFで機能します。ただし、動的に生成されたものの場合、Rubyを使用してHTTPリクエストを送信しており、Watirが使用しているヘッダー/ Cookie /セッションを認識していないため、機能しません。したがって、実際のP​​DFを取得する代わりに、ログインページを取得します。

私たちが試したもう1つのことは、Watirを使用してPDFを取得することでした。

    @browser.goto "http://site.com/dynamic/thepdffile"
    @browser.text
    @browser.html

ページからテキストまたはhtmlを取得しようとしましたが、FirefoxがPDFの読み込み時にDOMを作成するため、テキストは空の文字列であり、htmlはFirefoxがPDFページを表示するときに作成するDOMであるため、うまくいきませんでした。生のHTTP応答が必要ですが、それを抽出する方法はないようです。

したがって、これに対する解決策が必要であり、私の意見では、次のオプションがあります。

  1. Watirのセッションを使用して、Rubyで「open」または同様の方法を使用する方法を見つけます。
  2. watirを使用してPDFページからバイナリhttp応答を取得する方法を理解してください。
  3. 「名前を付けて保存」ダイアログが表示されるように、pdfプラグインを無効にします(これは不可能と思われます)。

または、他のアイデアがある場合は共有してください!前もって感謝します!

4

1 に答える 1

1

私は解決策を見つけました。

Firefoxのプロファイルで、plugin.scan.Acrobatを「999」に設定できます。これにより、PDFプラグインが効果的に無効になります。

    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['plugin.scan.Acrobat'] = "999"
    b = Watir::Browser.new :firefox, :profile => profile
于 2012-07-09T19:43:36.483 に答える