Comments (20)
Thanks, I sorted it with the following change in my Dockerfile
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update -qqy \
&& apt-get -qqy install google-chrome-stable \
&& rm /etc/apt/sources.list.d/google-chrome.list \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/* \
&& sed -i 's/"$HERE\/chrome"/"$HERE\/chrome" --no-sandbox/g' /opt/google/chrome/google-chrome
from cuprite.
BROWSER_PATH=/path/to/browser bundle exec rspec`
or pass it when instantiating a driver
Capybara::Cuprite::Driver.new(app, browser_path: "/path/to/browser")
from cuprite.
Yea seems like there's some issue when Chrome is already running. I have to take a look, but PRs are always welcome ;)
from cuprite.
I'm getting the same issue when running through a docker container.
Chrome process did not produce websocket url within 1 seconds (RuntimeError)
from cuprite.
@gregoryduckworth that's because in docker as root you have to pass no-sandbox option:
Capybara.register_driver :cuprite do |app|
Capybara::Cuprite::Driver.new(
app,
browser_options: {
'no-sandbox': nil
}
)
end
from cuprite.
Thanks for the reply @route, however when I add in the browser_options
, I seem to be unable to run the tests and get the following error: no implicit conversion of Array into Hash (TypeError)
Capybara.register_driver :cuprite do |app|
options = {
headless: true,
timeout: 30,
browser_options: [
'no-sandbox': nil
],
url_blacklist: [
'https://example.com'
]
}
Capybara::Cuprite::Driver.new(app, options)
end
from cuprite.
Sorted it, just checked and noticed you mentioned {}
instead of []
.
Although now have the error Chrome is dead (Capybara::Cuprite::DeadBrowser)
or Broken pipe (Errno::EPIPE)
from cuprite.
I'm facing the same problem. I do know what to do in order to solve this.
from cuprite.
I need more information other than that, browser version, full backtrace, options you are passing etc
from cuprite.
Environment:
macOS 10.12.6
Google Chrome 71.0.3578.80
cuprite 0.4.0
ruby 2.5.3
Driver:
Capybara.default_driver = :cuprite
Capybara.register_driver :cuprite do |app|
options = {
browser_options: {
'no-sandbox': nil
},
url_blacklist: [
# Stop the EDR Survey from popping up
'https://edigitalsurvey.com'
]
}
Capybara::Cuprite::Driver.new(app, options)
end
Capybara.javascript_driver = :cuprite
Then it is failing after running a test and the after hook, so struggling to provide a stack trace.
from cuprite.
Environment:
Ubuntu 16.04
Google Chrome 50.0.2661.102
Cuprite 0.4.0
Ruby 2.5.0
Configs in spec_helper
require 'capybara/cuprite'
Capybara.javascript_driver = :cuprite
Capybara.server = :webrick
Full stack of the error:
Failures:
1) Login GENERATED
Got 0 failures and 2 other errors:
1.1) Failure/Error: visit '/signin'
RuntimeError:
Chrome process did not produce websocket url within 1 seconds
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:179:in `parse_ws_url'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:93:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:31:in `tap'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:31:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:236:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:50:in `initialize'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:22:in `new'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:22:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/driver.rb:26:in `browser'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/driver.rb:31:in `visit'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara/session.rb:277:in `visit'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'
# ./spec/features/login_spec.rb:5:in `block (2 levels) in <top (required)>'
1.2) Failure/Error: raise "Chrome process did not produce websocket url within #{timeout} seconds"
RuntimeError:
Chrome process did not produce websocket url within 1 seconds
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:179:in `parse_ws_url'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:93:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:31:in `tap'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser/process.rb:31:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:236:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:50:in `initialize'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:22:in `new'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/browser.rb:22:in `start'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/driver.rb:26:in `browser'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/cuprite-0.4.0/lib/capybara/cuprite/driver.rb:131:in `reset!'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara/session.rb:128:in `reset!'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara.rb:315:in `block in reset_sessions!'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara.rb:315:in `reverse_each'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara.rb:315:in `reset_sessions!'
# /home/gesteira/.rvm/gems/ruby-2.5.0@project/gems/capybara-3.13.2/lib/capybara/rspec.rb:18:in `block (2 levels) in <top (required)>'
from cuprite.
@gvinicius Google Chrome 50.0.2661.102 outdated, install >= 71
from cuprite.
@gregoryduckworth could you please try to use master branch? gem "cuprite", github: "machinio/cuprite"
from cuprite.
@route - still getting the same Chrome is dead
or Broken pipe
errors
from cuprite.
@route , @gregoryduckworth after upgrading chrome to the latest version (72), setting BROWSER_PATH
env var correctly, the error is no longer happening to me.
from cuprite.
@gregoryduckworth I believe it's env related, does your test suite work without docker?
from cuprite.
@route - Yeah it works fine without docker
from cuprite.
@gregoryduckworth could you please show all cmd flags you run chrome process on docker, take a look at https://github.com/machinio/cuprite/blob/master/spec/spec_helper.rb#L16
from cuprite.
@Dark-Sun fixed your original issue. I think it's almost time to release 1.0
from cuprite.
@gvinicius Can you give us an example of how to set the BROWSER_PATH
?
from cuprite.
Related Issues (20)
- Setting a color input doesn't fire the change or input events
- Process forking causing cuprite/ferrum to never exit HOT 1
- 500 error, possibly related to web sockets with Ferrum
- Race condition leading to `Argument should belong to the same JavaScript world as target object` HOT 2
- What the best way to play with multiple/new windows or tabs? HOT 1
- fill_in with empty string does not call addEventListener('input') HOT 1
- Visibility issue upon replacing hidden nodes (Race condition)
- keydown event sent without key property HOT 5
- Obsolete nodes are not refreshed when using Capybara's #within and/or #synchronize HOT 2
- Release that references ferrum 0.14.0
- Scraping Blocked on Indeed Site HOT 1
- Capybara::Cuprite::InvalidSelector
- Loading all JS files from asset pipeline and packs folder for testing with capybara/rspec
- Tracing in tests
- Incorrect Element.scrollWidth property value
- compatibility with Emulation.setVirtualTimePolicy HOT 9
- Release/Publish new version of cuprite that depends on ferrum 0.15.0 HOT 1
- `click_on` removes hover state before clicking
- Viewport not resizing HOT 6
- click_on times out in some circumstances HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cuprite.