使用Selenium for Python的无头Chrome浏览器不完整下载

时间:2019-02-11 23:27:56

标签: python selenium selenium-chromedriver chromium google-chrome-headless

我正在运行一个自动化测试套件,该套件将在远程服务器上执行。我已经成功开发了测试,但是现在我需要确保它们以无头模式运行。

我使用各种选择器浏览网页,按下按钮等,最后单击下载按钮。

我激活无头模式并使用setDownloadBehavior命令,该命令通常如下所示:

    chrome_options = Options()

    chrome_options.add_experimental_option("prefs", {"download.default_directory": r"C:\Users\xxx\Downloads", "download.prompt_for_download": False,"download.directory_upgrade": True, "safebrowsing.enabled": True})

    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--headless')

    self.driver = webdriver.Chrome(executable_path=r'C:\Users\xxx\chromedriver.exe', options=chrome_options)

...

    driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
    params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': r"C:\Users\xxx\Downloads"}}
    driver.execute("send_command", params)

此操作成功完成,但是,它下载的文件正确命名为空(没有内容的1KB文件),而不是下载所需的文件。如果我在不使用chrome_options.add_argument('-headless')命令的情况下运行该程序,则它会完美运行。

关于如何解决此问题的任何建议?

0 个答案:

没有答案