Настройки драйвера Selenium 2 chrome java, эквивалентные RubyBindings

Последние два дня я искал способ установить настройки драйвера для драйвера chrome с помощью java, но безуспешно.

Однако я нашел решение в ruby ​​VIA RubyBindings и хотел бы знать, есть ли эквивалентная строка Java, которую я мог бы использовать для этого.

Код ruby ​​выглядит следующим образом:

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

Во время поиска я обнаружил, что в chrome нет профилировщика, который я мог бы использовать, как класс FirefoxProfile, поэтому вместо этого я начал использовать класс DesireCapabilities. После дальнейшего изучения этой проблемы я обнаружил, что могу установить «переключатели» и «префы» через «возможности.setCapabilitiy», и в итоге получил следующее:

Map prefs = new Hashtable();
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);

Однако мне не удалось заставить это работать, каталог загрузки по умолчанию никогда не был изменен на указанный каталог после запуска. Я не уверен, есть ли проблема в том, как я пытаюсь установить эту возможность, или проблема кроется в чем-то другом.

В итоге я использовал решение, предложенное здесь:
http://dkage.wordpress.com/2012/03/10/mid-air-trick-make-selenium-download-files/

но я хотел бы знать, можно ли сделать это более аккуратно, просто установив настройки напрямую, а не используя пользовательский интерфейс.

Любая помощь приветствуется, спасибо!

Обновление:
Удивительно, но после обновления Selenium 2 до версии 2.24.1 (и до Windows Chrome 22) приведенный выше код с картами работает, как и ожидалось, единственная проблема теперь заключается в том, что они устарели от использования конструктора. ChromeDriver (возможности DesiredCapabilities) и вместо этого рекомендую использовать класс ChromeOptions, который я не могу заставить работать для описанного выше сценария.

Ниже приведена вики-страница, объясняющая использование ChromeOptions и DesiredCapabilities: http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches

6
задан Zero4573 17 August 2012 в 15:16
поделиться