WebDriver сохраняет проблемы в автономном режиме - PullRequest
0 голосов
/ 05 декабря 2018

Я использую Java + ChromeDriver на Mac для своего проекта.Вот некоторый код:

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 в режиме без головы?

Спасибо.

1 Ответ

0 голосов
/ 05 декабря 2018

Вот что у меня сработало:

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)
...