我正在运行一个自动化测试套件,该套件将在远程服务器上执行。我已经成功开发了测试,但是现在我需要确保它们以无头模式运行。
我使用各种选择器浏览网页,按下按钮等,最后单击下载按钮。
我激活无头模式并使用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')命令的情况下运行该程序,则它会完美运行。
关于如何解决此问题的任何建议?