无头chromedriver下载问题

时间:2018-02-28 08:35:49

标签: java selenium-webdriver automation webdriver selenium-chromedriver

我有一个使用java selenium-webdriver,chromedriver创建的自动化过程,并使用eclipse。重点是通过无头和禁用gpu进行处理我得到的是下载正确但它没有出现在目录中,而是如果无头选项和gpu,如果它出现在目录中。附上下面的代码,如果有人知道如何做,可以帮助我,我将不胜感激,谢谢。

  

// ********* PARA CHROME *******     System.setProperty(" webdriver.chrome.driver"" C:\用户\达尼\桌面\驱动\ chromedriver235 \ chromedriver.exe&#34); // localiz   版本2.35 chromedriver

String downloadFilepath = "C:\\Users\\Dani\\Desktop\\FACTURAS";
HashMap<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("profile.default_content_settings.popups", 0);//ventanas emergentes
        prefs.put("download.prompt_for_download", false);
        prefs.put("download.default_directory", downloadFilepath);//directorio para descargas local
        prefs.put("download.prompt_for_download", false);
        prefs.put("download.directory_upgrade", true);
        prefs.put("profile.default_content_setting_values.automatic_downloads", 1);
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
        options.addArguments("--headless");
        options.addArguments("--window-size=1920,1200");//necesario para el headless (tamaño pantalla)
        options.addArguments("--disable-gpu");
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-popup-blocking");
        options.addArguments("--disable-notifications");//desactivar notificaciones
        options.addArguments("--disable-infobars");//evitar que apareguin infobars
        options.setExperimentalOption("prefs", prefs);
DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
        cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);// Bydefault it will accepts all popups.
        cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(options);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);//indicamos segundos entre acciones

0 个答案:

没有答案