Comments (9)
Yea that's weird, do you js_errors: true
set?
from cuprite.
Yep that's what I mean, I get this issue with js_errors: true
, with js_errors: false
the spec passes fine. Or with the rescue it passes as well.
As it's just 1 page it could be something specific to our app, but I thought I'd open the issue in case anyone else gets the same error and googles it.
from cuprite.
i think i had such a cryptic mutex error myself. I had tracked it down. The issue for me occurred when the page took longer to load than the cuprite timeout
configured, then it would throw such an error.
It's a little far for me to remember well, but I had reproduced it by create a fresh rails app, then putting an infinite sleep
in a controller action then trying to load that action using cuprite.
from cuprite.
@ximus mind creating a repo so I could take a look?
from cuprite.
https://github.com/ximus/cuprite-mutex-error-poc
from cuprite.
@ximus @sfcgeorge I removed all possible deadlocks in the last release. Code is no longer uses plain Ruby mutex and condition var, we now use concurrent-ruby primitives, more over there's always timeout (5 seconds by default) for slow responses. Could you guys please check again that massive refactoring?
from cuprite.
@ximus I ran your application locally and it worked fine on both my machines:
Failures:
1) test test
Failure/Error: visit root_path
Capybara::Cuprite::JavaScriptError:
Error: foo error
at HTMLDocument.<anonymous> (http://127.0.0.1:33605/:16:11)
# ./spec/features/test_spec.rb:5:in `block (2 levels) in <top (required)>'
Finished in 6.37 seconds (files took 0.40761 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/features/test_spec.rb:4 # test test
Mutex was fully eliminated from cuprite, if you guys could check that this error doesn't exist anymore I would appreciate it. Thanks!
from cuprite.
confirmed that toggling from 0.6.0
to 0.7.0
does fix the error. I know get:
1) test test
Failure/Error: visit root_path
Ferrum::TimeoutError:
Timed out waiting for response. It's possible that this happened because something took a very long time (for example a page load was slow). If so, setting the :timeout option to a higher value might help.
# ./spec/features/test_spec.rb:5:in `block (2 levels) in <top (required)>'
interesting note. I initially wasn't able to reproduce this. Then I tried downgrading to the ruby version I used during my initial POC. Turns out I can't reproduce the original error at ruby 2.6.3
but only when i used 2.5.1
. Anyways, irrelevant now that mutexes are gone.
from cuprite.
Thanks I'm glad it worked!
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.