2017-12-04 15 views
0

PHP Webdriver for Seleniumを使用して最新のバージョンのFirefoxでファイルをダウンロードしようとしましたが、動作させることができません。Firefox上でPHP Webdriver for Firefoxを使用してファイルをダウンロードする方法58 ++

$profile = new FirefoxProfile(); 
$caps = DesiredCapabilities::firefox(); 

$profile->setPreference('browser.download.folderList', 2); 
$profile->setPreference('browser.download.manager.showWhenStarting', false); 
$profile->setPreference('browser.download.dir', __DIR__.'/temp'); 
$profile->setPreference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf'); 

$caps->setCapability(FirefoxDriver::PROFILE, $profile); 

RemoteWebDriver::create('http://localhost:4444/wd/hub', $caps); 

それらの好みの一部、browser.helperApps.neverAsk.saveToDiskabout:configページ上に存在しないように:これは私がFirefox用webdriverを構成のための私のPHPUnit bootstrap.phpファイルを持っているコードです。手動で追加することもできますが、Firefoxを特定のフォルダにダウンロードすることはできません。

多分もうできませんか?

ありがとうございました!

+0

'FirefoxProfile'は使用しないでください。代わりに' FirefoxOptions'を使用してください。 –

+0

私が間違っていない場合は、 'FirefoxOptions'は存在しません;( –

+0

PHPクライアントに実装されていない場合は、機能の設定を直接設定してください。 –

答えて

0

私は私の誤りを見つけました。

header('Content-Disposition: attachment; filename="filename.pdf"'); 

悲しいことに、attachmentオプションは、Firefoxが常にウィンドウとして保存]を開きます:私は、送信pdfファイル用に構成され、このヘッダーを持っていました。 inlineに変更すると問題が解決します。

$profile = new FirefoxProfile(); 
$caps = DesiredCapabilities::firefox(); 

$profile->setPreference('browser.download.folderList', 2); 
$profile->setPreference('browser.download.dir', __DIR__.'/temp'); 
$profile->setPreference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf'); 
$profile->setPreference('pdfjs.enabledCache.state', false); 

$caps->setCapability(FirefoxDriver::PROFILE, $profile); 

RemoteWebDriver::create('http://localhost:4444/wd/hub', $caps); 

クレジットhttps://stackoverflow.com/a/47707635/2862917

PSへ:Windows上で、browser.download.dirはパスの\の代わり/を持っている必要がありますところで

は、Firefoxの57 ++のために、これは正しい設定です!

関連する問題