Как собрать удаленный Webdriver для Chrome - PullRequest
9 голосов
/ 03 августа 2011

Я пытаюсь запустить свои тесты Selenium против Chrome.Когда я инициализирую драйвер локально:

@driver = Selenium::WebDriver.for( :chrome )

Все работает нормально (я уже установил двоичный файл Chrome в PATH), но когда я пытаюсь запустить его удаленно:

@driver = Selenium::WebDriver.for(:remote, :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => :chrome)

я получаюошибка

Selenium :: WebDriver :: Error :: UnhandledError: путь к исполняемому файлу chromedriver должен быть установлен системным свойством webdriver.chrome.driver;для получения дополнительной информации см. http://code.google.com/p/selenium/wiki/ChromeDriver. Самую последнюю версию можно загрузить с http://code.google.com/p/chromium/downloads/list (java.lang.IllegalStateException)

Я немного запутался - как именноЯ установил это системное свойство?Я нашел этот код, написанный на Java:

DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setJavascriptEnabled(true);
caps.setCapability("chrome.binary", "/path/to/where/chrome/is/installed/chrome.exe");
System.setProperty("webdriver.chrome.driver","/path/to/where/you/ve/put/chromedriver.exe");
ChromeDriver driver = new ChromeDriver(caps);

, но мои тесты написаны на Ruby.RubyBindings не говорит об этой проблеме http://code.google.com/p/selenium/wiki/RubyBindings

Ответы [ 4 ]

15 голосов
/ 03 августа 2011

На самом деле сообщение об ошибке немного неверно.У вас нет для установки системного свойства, но исполняемый файл chromedriver должен быть доступен в PATH на удаленном компьютере (на котором работает сервер).

Если вы хотитеукажите путь как свойство, вы можете сделать это при запуске сервера, например:

java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar
1 голос
/ 05 августа 2011

Хорошо, ребята.С помощью я смог найти ответ.Проверьте это.

Вот как вы настраиваете драйвер на локальном компьютере:

    @driver = Selenium::WebDriver.for(:remote, :chrome :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => browser)

где

browser = ':chrome'
port = ':4444'
webdriver_hub = '/wd/hub'

На удаленной машине, на которой работает сервер, будет что-то вроде

    java -jar selenium-server-standalone-2.2.0.jar -Dwebdriver.chrome.driver="path/to/where/you/put/chromedriver.exe"

После запуска тестов с локального компьютера.

Удачи!

1 голос
/ 03 августа 2011

Вы должны указать путь к cromedriver.exe внутри кода теста. Это что-то вроде

System.setproperty();

на Java

Я также использую тесты на основе Java, поэтому не могу привести точный пример для Ruby. Но в основном вы должны указать своей Ruby-программе, где находится путь к chromedriver.exe

0 голосов
/ 22 января 2016

Я нашел выбранный ответ очень вводящим в заблуждение.Мне потребовалось около часа, чтобы исправить ошибку в ней.Узел - это тот, который должен иметь установленное свойство webdriver.chrome.driver, а не хаб .

Поэтому команда выбранного ответа должна быть:

java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar -role node

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...