我在Mac上的项目中使用Java + ChromeDriver。 这是一些代码:
System.setProperty("webdriver.chrome.driver", TestConfig.driverURL());
ChromeOptions options = new ChromeOptions();
options.addArguments("headless").addArguments("window-size=2560x1440");
String downloadFilePath = "some file path";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", downloadFilePath);
options.setExperimentalOption("prefs", chromePrefs);
driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
当我对此行发表评论时:
options.addArguments("headless").addArguments("window-size=2560x1440");
一切正常,我下载了一些文件,但是Chrome无法在无头模式下工作。
不对此行添加注释时,不下载文件。
有人可以告诉我如何使用无头模式的ChromeDriwer下载文件吗?
谢谢。
答案 0 :(得分:1)
这对我有用:
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
prefs = {'download.default_directory' : out_path}
options.add_experimental_option('prefs', prefs)
download_path = './output/'
driver = webdriver.Chrome('./chromedriver', chrome_options=options)
driver.command_executor._commands["send_command"] = ("POST",
'/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow',
'downloadPath': download_path}}
command_result = driver.execute("send_command", params)