2013-03-04 2 views
4

Привет, когда я использую следующий кодRemote WebDriver Chrome бросает «путь к исполняемому файлу драйвера» ошибка

IWebDriver _webDriver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), 
       DesiredCapabilities.Chrome()); 

Я получаю ошибку follwing

System.InvalidOperationException: Путь к драйверу исполняемый файл должен быть установлен с помощью свойства webdriver.chrome.driver; для получения дополнительной информации см. http://code.google.com/p/selenium/wiki/ChromeDriver. Последняя версия может быть загружена с http://code.google.com/p/chromedriver/downloads/list TearDown: System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. на OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (ответ) errorResponse в OpenQA.Selenium.Remote.RemoteWebDriver.Execute (String driverCommandToExecute, параметры Dictionary`2) в OpenQA.Selenium.Remote.RemoteWebDriver..ctor (ICommandExecutor commandExecutor , ICapabilities wishCapabilities) в Testframework.Browser.RemoteGoto (String browser, String url) в Browser.cs: строка 86 в Testframework.CommonAction.RemoteBrowser (браузер строк) в CommonAction.cs: строка 70 в Test.RegistrationTest.InvalidRegistrationTest (String browser, String username, String password, String confirmPassword, String securityQuestion, String securityAnswer, String errorMessageText, String firstname, String lastname) в RegistrationTest.cs: строка 50 --TearDown в Testframework.CommonAction.CaptureScreen (Строка Filename) в CommonAction.cs: линия 121 на Test.RegistrationTest.SnapshotOnFailure() в RegistrationTest.cs: линия 590

ответ

4

Ключ действительно находится в ошибка.

Хром должен быть установлен в системе, где тесты либо работают, либо на них указывают.

Сделайте шаг назад, посмотрите документацию:

https://code.google.com/p/selenium/wiki/ChromeDriver

Кроме того, если установлен Chrome в особом месте, вам нужно указать Selenium на это место. Опять же, это объясняется в документации.

В C#:

DesiredCapabilities capabilities = DesiredCapabilities.Chrome(); 
capabilities.SetCapability("chrome.binary", this.binaryLocation); 

или:

ChromeOptions options = new ChromeOptions(); 
options.BinaryLocation = "pathtogooglechrome"; 
capabilities.SetCapability(ChromeOptions.Capability, options); 
+0

Привет, я могу найти только примеры java, можете ли вы рассказать мне, как установить путь к chrome в C# webdriver remote, так как я не могу найти эквивалент в C# q –

+0

Отредактировано, чтобы показать вам. – Arran

+0

Thank u, Это путь, который я устанавливаю options.BinaryLocation = @ ".. \ RequiredFiles \ chromedriver_win_26.0.1383.0 \ chromedriver.exe"; я получаю следующую ошибку: «Путь к исполняемому файлу драйвера должен быть установлен с помощью свойства webdriver.chrome.driver» –

4

Вместо того, чтобы изменить код, вы можете иметь другой путь вокруг.
Загрузите драйвер хрома и установите переменную окружения PATH, указывающую на каталог, в котором присутствует chromedriver.exe.

Перезапустите консоль IDE/Command и запустите тесты. Оно работает!!!

+0

Спасибо, что есть другой способ, кроме настройки его как переменной окружения. Я также нашел это решение, установив путь хромированной передачи при запуске консоли (java -Dwebdriver.chrome.driver = C: \ example \ chromedriver.exe -jar selenium-server-standalone-2.31.0.jar). Я хочу как можно больше избежать этого решения и установить путь в коде, чтобы код оставался переносным :) –

+0

@AnandS Чтобы поддерживать код в переносном режиме, лучше, если бы мы не зафиксировали местоположение драйвера. Я предпочитаю установочный путь, так как разработанные тесты можно портировать на любую машину и могут быть использованы только путем установки PATH –

+0

. Спасибо, мне очень любопытно узнать, почему, когда я использую этот System.Environment.SetEnvironmentVariable («webdriver.chrome .driver ", @"/path/to/w here/you/ve/put/chromedriver.exe "), chromedriver.exe не получает заданную переменную окружения –

Смежные вопросы