He estado buscando una forma de establecer las preferencias del controlador para el controlador de Chrome utilizando Java durante los últimos dos días sin suerte.Selenium 2 preferencias de controlador de Chrome Java equivalente a RubyBindings
Sin embargo, he encontrado una solución en ruby VIA RubyBindings y me gustaría saber si hay una línea equivalente a Java que pueda usar para esto.
código El rubí es la siguiente:
profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = "/path/to/dir"
driver = Selenium::WebDriver.for :chrome, :profile => profile
Si bien la búsqueda me encontré con que el cromo no tiene un generador de perfiles que podría utilizar como la clase FirefoxProfile, por lo que comenzó a usar la clase DesireCapabilities lugar. Después de más investigaciones sobre este problema me encontré que podría establecer los "interruptores" y "Preferencias" VIA capabilities.setCapabilitiy y terminó con las siguientes:
Map<String, String> prefs = new Hashtable<String, String>();
prefs.put("download.prompt_for_download", "false");
prefs.put("download.default_directory", "/path/to/dir");
prefs.put("download.extensions_to_open", "pdf");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.prefs", prefs);
dr = new ChromeDriver(capabilities);
Sin embargo, no fue capaz de conseguir este trabajo, el valor predeterminado el directorio de descarga nunca se cambió al directorio especificado una vez que se inició. No estoy seguro si hay un problema con la forma en que estoy tratando de establecer esta capacidad o si el problema se encuentra en otra parte.
Al final el tiempo que utilizan la solución que aquí se propone:
http://dkage.wordpress.com/2012/03/10/mid-air-trick-make-selenium-download-files/
pero me gustaría saber si es posible hacer esto de forma más limpia, pero sólo la creación de las preferencias directamente en lugar de utilizar la interfaz de usuario
¡Se agradece cualquier ayuda, gracias!
Actualización:
Sorprendentemente después de la actualización a la versión 2 de selenio 2.24.1 (y para las ventanas de Chrome 22), el código anterior con los mapas funcionan como se esperaba, el único problema ahora es que el desuso del uso de el constructor ChromeDriver (Capacidades de DesiredCapabilities), y en su lugar, recomiendo usar la clase ChromeOptions, que no puedo trabajar para el escenario anterior.
A continuación se muestra la página wiki explicando el uso de ambos ChromeOptions y DesiredCapabilities: http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches
Gracias por la sugerencia, no me di cuenta de que los enlaces se expanden así. Lamentablemente, aunque hacerlo todavía no ayudó (he excluido el "prompt_for_download", ya que Chrome ya lo hace por defecto para evitar la posibilidad de un problema) – Zero4573