Ho cercato un modo per impostare le preferenze del driver per il driver chrome utilizzando java negli ultimi due giorni senza fortuna.Preferenze del driver del selenio 2 chrome java equivalente a RubyBindings
Ho tuttavia trovato una soluzione in Ruby VIA RubyBindings e vorrei sapere se esiste una linea java equivalente che posso utilizzare per questo.
codice Il rubino è la seguente:
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
Durante la ricerca ho scoperto che Chrome non ha un profiler ho potuto usare come la classe FirefoxProfile, così ho iniziato a utilizzare la classe DesireCapabilities invece. Dopo ulteriori indagini in questo problema ho trovato che ho potuto impostare gli "interruttori" e "Preferenze" VIA capabilities.setCapabilitiy e si è conclusa con il seguente:
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);
Tuttavia non ero in grado di ottenere questo lavoro, il default la directory di download non è mai stata modificata nella directory specificata una volta avviata. Non sono sicuro se c'è un problema nel modo in cui sto cercando di impostare questa capacità o se il problema si trova altrove.
Alla fine fine ho usato la soluzione qui proposta:
http://dkage.wordpress.com/2012/03/10/mid-air-trick-make-selenium-download-files/
ma vorrei sapere se è possibile farlo in modo più pulito, ma solo impostando le preferenze direttamente invece di utilizzare l'interfaccia utente
Qualsiasi aiuto è apprezzato, grazie!
Aggiornamento:
Sorprendentemente dopo l'aggiornamento Selenio 2 alla versione 2.24.1 (e per le finestre di Chrome 22), il codice precedente con le mappe funzionano come previsto, l'unico problema ora è che l'deprecato l'uso di il costruttore ChromeDriver (funzionalità DesiredCapabilities), e invece consiglio di utilizzare la classe ChromeOptions, che non riesco a lavorare per lo scenario sopra.
Di seguito si riporta la pagina wiki che spiega l'uso di entrambi ChromeOptions e DesiredCapabilities: http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches
Grazie per il suggerimento, non ho notato che le associazioni si espandono in questo modo. Sfortunatamente però farlo non ha aiutato (avevo escluso il "prompt_for_download" dato che Chrome lo fa già per impostazione predefinita per evitare la possibilità di un problema) – Zero4573