Git Product home page Git Product logo

Comments (12)

ecbrodie avatar ecbrodie commented on September 24, 2024 2

@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.

flavorjones avatar flavorjones commented on September 24, 2024

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.

ecbrodie avatar ecbrodie commented on September 24, 2024

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.

flavorjones avatar flavorjones commented on September 24, 2024

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.

ecbrodie avatar ecbrodie commented on September 24, 2024

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.

flavorjones avatar flavorjones commented on September 24, 2024

@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.

twalpole avatar twalpole commented on September 24, 2024

The webdrivers gem has auto-update built-in, but patches selenium rather than using a shim

from chromedriver-helper.

justin808 avatar justin808 commented on September 24, 2024

@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.

twalpole avatar twalpole commented on September 24, 2024

@justin808 if you're using chromedriver with Selenium - the webdrivers gem provides a more seamless solution which auto-updates chromedriver.

from chromedriver-helper.

flavorjones avatar flavorjones commented on September 24, 2024

@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.

flavorjones avatar flavorjones commented on September 24, 2024

@justin808 Also, you can lock a version in your application, see https://github.com/flavorjones/chromedriver-helper#specifying-a-version

from chromedriver-helper.

oskarpearson avatar oskarpearson commented on September 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.