thoughtbot / capybara-webkit

A Capybara driver for headless WebKit to test JavaScript web apps
https://thoughtbot.com/open-source
MIT License
1.97k stars 428 forks source link

Capybara::Webkit::ConnectionError: webkit_server failed to start. #1082

Open derrelldurrett opened 5 years ago

derrelldurrett commented 5 years ago

I'm trying to use Cucumber/Capybara/WebKit under an Ubuntu 18.04 installation in WSL, so it's possible there's something about the WSL environment that's creating the following issue.

I've already tried following the solutions here and here, and as best as I can tell, everything installed correctly (xvfb, Qt). I then uninstalled and reinstalled capybara-webkit, and I have added the headless gem.

At the command line of the WSL instance, webkit-server still reports:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-derrell'
qt.qpa.screen: QXcbConnection: Could not connect to display 
Could not connect to any X display.

And running xvfb-run -a cucumber reports in part:

11:48:14.665 Received "Visit(http://127.0.0.1:57233/dashboard)"
11:48:14.666 Started "Visit(http://127.0.0.1:57233/dashboard)"
11:48:14.669 Load started
11:48:14.670 "Visit(http://127.0.0.1:57233/dashboard)" started page load
11:48:14.691 Started request to "http://127.0.0.1:57233/dashboard"
11:48:14.692 Finished "Visit(http://127.0.0.1:57233/dashboard)" with response "Success()"
11:48:34.713 Received 0 from "http://127.0.0.1:57233/dashboard"
11:48:34.714 Page finished with true
11:48:34.715 Load finished
11:48:34.715 Page load from command finished
11:48:34.716 Wrote response false "{\"class\":\"TimeoutError\",\"message\":\"Request timed out after 20 second(s)\"}"
  @javascript
  Scenario: Going to the page and entering a number in the form results in the display of the current weather for that many locations # features/display_weather_at_random_locations.feature:3
    Given I have a page that has a form that accepts a number                                                                         # features/step_definitions/display_weather_steps.rb:1
      Request timed out after 20 second(s) (Capybara::Webkit::TimeoutError)

I'm open to any suggestions for what's missing and for trying anything you can suggest. I'd wager I'm unusual in attempting to use this environment in this way.