Comments (12)
@flavorjones with that comment about the binstub, I think I'll have enough direction to start a PR. Thank you for the discussion :)
from chromedriver-helper.
thanks for asking this question!
No, chromedriver-helper will not automatically update, that's intentional to allow people to have a stable testing environment.
Any particular reason you're asking? Is this something you think should be supported?
from chromedriver-helper.
It appears that a recent Chrome version update (probably version 65) has broken older versions of ChromeDriver. My Rails project utilizes ChromeDriver through Capybara-Selenium for our browser-based acceptance testing. I have multiple developers on the project. I for sure experienced a ChromeDriver incompatibility on my machine and thus had to run chromedriver-update
to update ChromeDriver to the latest version and thus fix my acceptance tests.
The pain around this project lacking automatic updates for ChromeDriver is that I now have to instruct the multiple devs on my project to each run chromedriver-update
on their machines to avoid the issue that I ran into. It would be nice if this project supported automatic updating. I'm not sure if it's necessarily feasible, I'd have to rely on your expertise to answer that question.
If you think it is feasible and have ideas on how to implement it, I don't mind throwing my hat in to help work on it. I just wouldn't create a PR for it unless I knew in advance whether it would be a welcomed merge. Thank you.
from chromedriver-helper.
Ah, I see. Thanks for explaining.
My personal philosophy is that I don't like things going to the network unnecessarily (because some of my day job happens in disconnected environments), nor do I like components updating without there being either a manual step or an opt-in process (because isolating test failures can often be hard enough without introducing fluid version updates).
Given my (perhaps irrational) preferences, I'd be open to an option in which people could opt-in to continuous version updates. I'm open to the mechanism, though an environment variable being present comes to mind as something that a team could collectively set in their project. Here's what I'd want to see, though:
- A message is emitted on stdout indicating that the shim is going out to the network to look for updates. This is so that if the network hangs, users will understand what's happening.
- A message is emitted on stdout if an upgrade occurs, indicating the old and the new version
Does that seem reasonable to you? What else would you like this feature to accomplish?
from chromedriver-helper.
I think all of this makes sense to me, especially around the stdout requirements that you are setting.
As to what mechanisms will be put in place to enable the automatic update, I am less sure of. If this project is installed as a normal gem in a project's Gemfile
, what would be the trigger for the update? Would it be something at the Ruby source code level, as in a method from this package will have to be called somewhere like an rspec test helper? I'm trying to think about other Ruby Gems that I can compare this project to, which have automatic update functionality built-in to it.
from chromedriver-helper.
@ecbrodie I was considering that the best way to do this is to have the shim bin/chromedriver
perform this check before it starts up the real chromedriver. Does that make sense?
from chromedriver-helper.
The webdrivers
gem has auto-update built-in, but patches selenium rather than using a shim
from chromedriver-helper.
@flavorjones I just yak shaved on this forever! in that my chromedriver was old and didn't work.
Before updating:
➜ ~/tmp/react-webpack-rails-tutorial (master u=) chromedriver --version [9:19:33]
WARNING: Nokogiri was built against LibXML version 2.9.7, but has dynamically loaded 2.9.4
ChromeDriver 2.30.477690 (c53f4ad87510ee97b5c3425a14c0e79780cdf262)
after updating, and working tests
➜ ~/tmp/react-webpack-rails-tutorial (master u=) chromedriver --version 130 ↵ [9:23:22]
WARNING: Nokogiri was built against LibXML version 2.9.7, but has dynamically loaded 2.9.4
ChromeDriver 2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011)
I 100% think we need something easier for our teams...Either auto-updates or a lock on the version in the rails app.
What made this even more confusing is that I had the current versions of chromedriver installed by both npm and brew.
from chromedriver-helper.
@justin808 if you're using chromedriver with Selenium - the webdrivers
gem provides a more seamless solution which auto-updates chromedriver.
from chromedriver-helper.
@justin808 Thanks for commenting. I'm struggling a bit to understand what you mean by "yak shaved forever" ... Did you mean that you had problems running chromedriver-update
? Or that you had problems finding out that the command exists? Could we improve our documentation? Did you have a particular suggestion for how it should work?
from chromedriver-helper.
@justin808 Also, you can lock a version in your application, see https://github.com/flavorjones/chromedriver-helper#specifying-a-version
from chromedriver-helper.
Just my 2c - but I think that this can be closed. Locking a version as per #54 (comment) is sufficient imho - and means people can choose when to update by default.
from chromedriver-helper.
Related Issues (20)
- unknown error: call function result missing 'value' for Selenium Send Keys even after chromedriver upgrade HOT 1
- Chromedriver picks up wrong version HOT 13
- chromedriver-helper breaks projects not using it HOT 20
- No options to set log log-level and log-path HOT 6
- Using with Rails: "uninitialized constant Selenium" HOT 5
- Use LATEST_RELEASE file rather than guessing HOT 8
- Chromedriver helper downloading weird chromedriver version number HOT 2
- NameError: uninitialized constant Chromedriver in rails & rspec config HOT 5
- Mention "require" in README? HOT 3
- certificate verify failed (self signed certificate in certificate chain) (OpenSSL::SSL::SSLError) HOT 9
- Not executable: chromedriver-helper HOT 1
- No output with 'which chromedriver' after installing 2.1.0 HOT 3
- Not working in rspec (calling in rails_helper.rb) HOT 1
- Can't get this working in trivial case HOT 7
- Allow setting an environment variable to skip installation, for systems on which a compatible chromedriver is already installed HOT 11
- Use a compatible version of chromedriver HOT 8
- Version selection with LATEST_RELEASE is deprecated HOT 17
- Seeking new maintainer HOT 16
- Doc question HOT 1
- NOTICE: Ending support for this gem HOT 15
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 chromedriver-helper.