Ich habe nach einem Weg gesucht, die Fahrereinstellungen für Chrome-Treiber mit Java für die letzten zwei Tage ohne Glück zu setzen.Selen 2 Chrome Treibereinstellungen Java entspricht RubyBindings
Ich habe jedoch eine Lösung in Ruby VIA RubyBindings gefunden und würde gerne wissen, ob es eine Java-äquivalente Zeile gibt, die ich dafür verwenden kann.
Der Ruby-Code ist der folgende:
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
Während der Suche fand ich, dass Chrom nicht einen Profiler hat ich wie die FirefoxProfile Klasse verwenden könnte, also fing ich an, anstatt die DesireCapabilities Klasse. Nach einem weiteren Untersuchung in dieses Problem fand ich, dass ich die „Schalter“ einstellen könnte und „Prefs“ VIA capabilities.setCapabilitiy und endete mit dem folgenden:
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);
Allerdings war ich nicht in der Lage diese Funktion zu erhalten, der Standard Download-Verzeichnis wurde nach dem Start nie in das angegebene Verzeichnis geändert. Ich bin mir nicht sicher, ob es ein Problem damit gibt, wie ich diese Fähigkeit einstellen möchte oder ob das Problem woanders liegt.
Am Ende habe ich schließlich die hier vorgeschlagene Lösung:
http://dkage.wordpress.com/2012/03/10/mid-air-trick-make-selenium-download-files/
aber ich würde gerne wissen, ob es möglich ist, diese sauberer zu tun, sondern nur die Präferenzen einstellen direkt anstelle der Verwendung der UI
Jede Hilfe wird geschätzt, Danke!
Update:
Überraschenderweise nach 2.24.1 Selen 2 auf Version zu aktualisieren (und die Fenster 22 Chrom), den obigen Code mit den Karten wie erwartet, jetzt ist das einzige Problem ist, dass sie von der Verwendung als veraltet Der Konstruktor ChromeDriver (DesiredCapabilities-Funktionen) empfiehlt stattdessen, die ChromeOptions-Klasse zu verwenden, die im obigen Szenario nicht funktioniert. beide ChromeOptions und DesiredCapabilities
Unten ist die Wiki-Seite die Verwendung Erläuterung: http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches
Danke für den Vorschlag, habe ich nicht bemerkt, dass die Bindungen so erweitern. Leider half dies aber immer noch nicht (ich hatte das "prompt_for_download" ausgeschlossen, da Chrome dies bereits standardmäßig tut, um die Möglichkeit eines Problems dort zu vermeiden) – Zero4573