web-dev-qa-db-ja.com

GoogleからファイルをダウンロードChromeヘッドレスモードで

私は「通常」モードのCromedriveでコードを実行し、正常に動作します。ヘッドレスモードに変更すると、ファイルがダウンロードされません。インターネットで見つけたコードをすでに試しましたが、うまくいきませんでした。

chrome_options = Options()
chrome_options.add_argument("--headless")
self.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=r'{}/chromedriver'.format(os.getcwd()))
self.driver.set_window_size(1024, 768)
self.driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')

params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': os.getcwd()}}
self.driver.execute("send_command", params)

誰もがこの問題をどのように解決するかについて何か考えがありますか? PS:Chomedriveを必ずしも使用する必要はありません。別のドライブで動作する場合は、問題ありません。

5
CBury

JavaScriptの場合、以下のコードを使用します。

    const chrome = require('Selenium-webdriver/chrome');
    let options = new chrome.Options();
    options.addArguments('--headless --window-size=1500,1200');
    options.setUserPreferences({ 'plugins.always_open_pdf_externally': true,
    "profile.default_content_settings.popups": 0,
    "download.default_directory": Download_File_Path });
    driver = await new webdriver.Builder().setChromeOptions(options).forBrowser('chrome').build();

ダウンロードボタンをクリックするとすぐにタブが切り替わります:

    await driver.sleep(1000); 
    var Handle = await driver.getAllWindowHandles();
    await driver.switchTo().window(Handle[1]);
0
Justin Chetty