0

I am trying to port some Selenium-Tests that I developed under windows (my main platform) to Linux (Ubuntu 19.10 in a VM). I must admit, I'm not too familiar with the environment, so I might be missing very obvious things - well, obvious for those that live on Linux ;)

After fixing issues with file permissions for the driver etc., I am stopped with this exception:

OpenQA.Selenium.WebDriverException: An unknown exception was encountered sending an HTTP request to the remote WebDriver server for URL http://localhost:39213/session. The exception message was: Connection refused
 ---> System.Net.Http.HttpRequestException: Connection refused
 ---> System.Net.Sockets.SocketException (111): Connection refused
 at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
 --- End of inner exception stack trace ---
 at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
 at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
 at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
 at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
 at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
 at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
 --- End of inner exception stack trace ---
 at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
 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.Chromium.ChromiumDriver..ctor(ChromiumDriverService service, ChromiumOptions options, TimeSpan commandTimeout)
 at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
 at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options)

when trying to instantiate ChromeDriver (by passing an instance of ChromeDriverService and some ChromeOptions.

How can I diagnose/fix this?

The webserver I would like to talk to listens on 10.0.2.15:8080 and delivers content to a regular browser. A coworker recommended to try netstat -an | grep 39213 to see if anything is actually listing on that port - which was not the case (no output from that command). And indeed - the service did not launch. I have an instance of ChromeDriverService - but there is no process associated with it. Will look into that now and update the question if I find anything useful...

asked Jun 16, 2020 at 13:16
5
  • What's the actual IP addr of localhost? And of your WebDriver server? Are they the same? Isn't onesth like 127.1.0.0 and the other one 127.0.0.1? Commented Jun 16, 2020 at 13:29
  • In which machine your WebDriver server is running? Whether in local machine or else in some other remote machine Commented Jun 16, 2020 at 13:31
  • What is your linux distro? Commented Jun 16, 2020 at 13:49
  • Have you started selenium server before running your script ? Commented Jun 16, 2020 at 18:09
  • Answered 1 (partially) and 2+3 by adding to the question. Not sure what you guys mean with "Selenium Server". The "pattern" I learned on windows is to first create a ChromeDriverService and then pass that instance to the ChromeDriver. And it's all happening on this machine - no external calls needed. Commented Jun 17, 2020 at 7:14

1 Answer 1

1

Argh - found it: the file chromedriver. did not have execute-permissions. That wasn't reported as a problem when I instantiated ChromeDriverService - but I also did not create a "regular instance" of it. After setting these permissions, it's running now!

answered Jun 17, 2020 at 7:31
2
  • Could you pleas take a look at stackoverflow.com/questions/73020234/… . I have this problem with Docker Commented Jul 20, 2022 at 4:13
  • 1
    I had a look - but my feeling is that the issue there is something else, probably more with Docker - which I'm still learning about... Commented Jul 21, 2022 at 8:13

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.