OpenQA.Selenium.WebDriverException Message = Невозможно запустить службу драйвера на http://localhost: порт / использование ChromeDriver Chrome через Selenium в C# - PullRequest
0 голосов
/ 11 февраля 2020

Я использую последний пакет Selenium.WebDriver NuGet v3.141.0

последний пакет Selenium.WebDriver.ChromeDriver v80.0.3987.1600

моя chrome версия 80.0.3987.87

chromedriver.exe находится в той же папке, что и исполняемый файл моей программы

var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.google.com/");
Starting ChromeDriver 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}) on port #
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.

, за которым следует весь стек:

OpenQA.Selenium.WebDriverException
  HResult=0x80131500
  Message=Cannot start the driver service on http://localhost:port/
  Source=WebDriver
  StackTrace:
   at OpenQA.Selenium.DriverService.Start()
   at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
   at OpenQA.Selenium.Chrome.ChromeDriver..ctor()
   at snow_net.Program.create_chg_mypruit() in C:\Users\username\source\repos\snow-net\Program.cs:line 119
   at snow_net.Program.Main(String[] args) in C:\Users\username\source\repos\snow-net\Program.cs:line 66

edit: я также пытался

IWebDriver driver;
            using (driver = new ChromeDriver())
            {
                driver.Navigate().GoToUrl(@"https://www.google.com/");
            }

, который завершается ошибкой с той же ошибкой и пробовал также драйверы IE и Firefox

Обновление:

Так что я попробовал это дома (не в сети моей компании) и он работал с этим точным кодом ... я заблокирован брандмауэром?

1 Ответ

0 голосов
/ 11 февраля 2020

Вы должны позаботиться о нескольких вещах:

  • Вам необходимо передать весь URL , то есть добавить www к https://google.com, поэтому эффективно url будет https://www.google.com/.
  • Кроме того, поскольку вы инициализировали экземпляр ChromeDriver как driver, вы должны вызывать Navigate() только с экземпляром driver , но не с drive.
  • Эффективно ваш кодовый блок будет:

    var driver = new ChromeDriver();
    driver.Navigate().GoToUrl("https://www.google.com/"); 
    
...