2017-09-08 2 views
0

私は問題を抱えています。セレンドライバーを使用してPDFにプリントする

[印刷]ダイアログが表示されたら、PDFファイルをダウンロードする必要があります。ここで

ダイアログ

enter image description here

の一例である私はChromeとFirefoxのドライバの両方を試してみました。しかし、残念ながらそれはまだ機能しません。

私は、Firefox

fp.setPreference("print.print_to_file", true); 

ために、以下の好みを発見した。しかし、動作しないようです。 設定変数には適用されません。

セレンでいくつかのアクションを自動化し、この印刷ダイアログが表示されたらPDFファイルに保存する方法を提案してください。

+0

これはSeleniumでは実行できません。私はページをこすり、解析し、あなた自身がpdfに書き込むことを提案することができます – Hisagr

+0

この質問を参照してください答えを得ることを望みます https://stackoverflow.com/questions/33692179/export-as-pdf-using-selenium- webdriver-screenshot – zsbappa

答えて

0

まず、seleniumがWebオートメーションツールであることを知る必要があります。それは、ブラウザに属するものだけを操作することができます。それでも、それはアドレスバー、救助バー、ブラウザのメニューバーのようなブラウザに属しているすべてのものを操作することはできません。

ほとんどの場合、印刷ダイアログはブラウザに属しておらず、OSやOSにインストールされている他のソフトウェアによって提供されます。セレンはそれが妥当であることができないので。

スクリプトコードがjavaの場合、java.awt.robotを使用してダイアログ をキャプチャし、[print to file]をクリックします。

java.awt.robotがあなたの期待として働いていたことができる場合、私はあなたが、印刷されたファイルを保存するには、ブラウザのパスを与えるためにあなたのスクリプトでブラウザのオプションを設定し、ファイルをダウンロードしたときのようなブラウズするaslo必要性が要求されます考えますあなたはどこに保存しますか?

このオプションを設定しないと、別のダイアログがポップアップされて保存先を尋ねるダイアログが表示され、このダイアログもブラウザに属していないようです。 java.awt.robotを使用して保存パスを設定するのは簡単ではありません。

異なるOSで実行されるスクリプトの可能性を考慮する必要があるため、異なるOSでabosulteパスを使用することはできません。あなたのスクリプトがseleniuグリッドで走っているならば、それはあなたを熱狂させるでしょう。だから、ファイルの印刷機能をテストすることは重要ではない、私はあなたがそれを手動でテストすることをお勧めします。

関連する問題