2016-11-17 20 views
3

SeleniumとChromeウェブブラウザで使用できるオプションについてのドキュメントはどこにありますか? Webブラウザで(クレデンシャルを取得するため)リンクを開きたいが、対応するファイル(.pdfまたは.tiffまたは.jpeg)をダウンロードしない。私はPython 2.7、selenium 3.0.1、およびChrome Version 54.0.2840.99(およびchromedriver.exe)をWindows 7 Laptopで使用しています。ChromeでSelenium Pythonバインディングを使用してファイルをダウンロードする方法を制御する

  # Chrome web browser 
      options = webdriver.ChromeOptions() 
      options.add_argument('--ignore-certificate-errors') 
      #options.add_argument('--disable-download-notification') #doesn't seems to work 
      #options.add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"}) # doesn't work 
      #options.add_experimental_option("prefs", {"download.prompt_for_download": False}) # doesn't seems to work 
      #options.add_experimental_option("prefs", {'profile.default_content_settings': {'images': 2}})# this will disable image loading in the browser 
      options.add_argument("user-agent="+user_agent_profile) 
      driver_main = webdriver.Chrome(chrome_options=options) 

      # opening the web application portail 
      driver_main.get("https://my_link") 

このトピックについては多くの議論がありましたが、解決策はありません。たとえば、次のようにしながら、(私も "偽" としてみてください)

add_experimental_option("prefs", {"download.prompt_for_download": False}) 

を::

add_argument("user-agent="+user_agent_profile) 

add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"}) 

がため

は同じ私のために動作しません。

うまくいくようです!

私が間違っているかを理解することを確認していない

私が得た問題は、それがファイル私は名前のファイル(1)ファイルとのリンクを開くたびにダウンロードして開始することである(2).... file(99)then 100で始まり、ポップアップウィンドウ "Save As"を開きます。だから、私はそのファイルをまったくダウンロードしないでください、または "ごみ箱"内の特定のフォルダに移動することはできません。

add_argumentとadd_argumentでどのオプションを使用することができますか? //について/私が直接対応にあなたがデフォルトのディレクトリに宣言たくさん

乾杯

ファビアン

+0

変更ダウンロードパス - ' "download.default_directory"、 "C:\\ユーザー\\ xxxの\\ダウンロード\\テスト" '。それは私の魅力のように働く。 –

答えて

6

パスがある

感謝を見ることができなかった:私はクロームを見てみました無効。バックスラッシュをエスケープするか、リテラル文字列を指定してください。ここで

options = webdriver.ChromeOptions() 
options.add_experimental_option("prefs", { 
    "download.default_directory": r"C:\Users\xxx\downloads\Test", 
    "download.prompt_for_download": False, 
    "download.directory_upgrade": True, 
    "safebrowsing.enabled": True 
}) 
driver = webdriver.Chrome(chrome_options=options) 

利用できる設定されている。これに

https://cs.chromium.org/chromium/src/chrome/common/pref_names.cc

+0

こんにちはFlorent、ありがとう。あなたは私があなたに与えた例では道が間違っていたことは間違いありません。正しい経路ではうまくいかず、私はその問題を発見したと思う。 Chromeウェブページの設定を見ると、ダウンロードパスを変更する権利がないことがわかります(これは私のcompagnyで設定されています)。 **「download.prompt_for_download」と同じこと:False ** ** True **または** False **同じことが分かります。私はこのパラメータを変更するのに全力を尽くしていないのと同じ問題かもしれません。 Thanks –

+0

'options.add_argument( 'disable-component-cloud-policy')'を試して、ポリシーを無効にすることができます。 –

+0

こんにちはFlorent、私は試してみて、それは影響がなかった。私はこれらの制限付きで別のラップトップを試してみることにします。私はコピー後にダウンロードフォルダ内の一時ファイルを削除することによって.pdfでほとんどの問題を解決することができますが、.jpgはブラウザに表示され、システムがクラッシュすることがあります。私はこの問題を避けるために.set_page_load_timeout(10)を試してみます。ありがとう –

関連する問題