Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Chromium's available versions to find the stable version of ChromeDriver #280

Closed
benjaminapetersen opened this issue Oct 12, 2017 · 8 comments
Assignees
Labels

Comments

@benjaminapetersen
Copy link

It would be most helpful if configuration could be committed to code (and then version control). Simply put, I'd like to be able to assert versions in package.json or a webdrivermanager.json config file. Running webdriver-manager update & getting whatever drivers & version of selenium happens to install is concerning as it makes it difficult to trust the e2e setup (did a version change, or was it a test flake?). I realize you can pass flags to webdriver-manager. Thats a good start, but perhaps one more layer of polish?

@cnishina
Copy link
Member

cnishina commented Oct 23, 2017

You could pass flags to control the versions being downloaded. Also this is well documented in the repo. I'm not exactly sure what this extra layer would do. It is not clear how this issue could be turned into a feature.

@cnishina
Copy link
Member

cnishina commented Nov 8, 2017

I think a webdrivermanager.json could be interesting. Kind of like freezing the dependencies like a npm lock on binaries. I do not have the bandwidth to get this done any time soon...

@benjaminapetersen
Copy link
Author

Exactly.

Is tempting to look, but I'd prob hesitate to take a stab @ a PR w/o some suggested direction from anyone more core to the project.

@cnishina cnishina removed the PRs plz! label Apr 10, 2019
@cnishina
Copy link
Member

This seems reasonable to read a file and use this file for versions. Maybe this could also be tied into pinning a version. So webdriver-manager might have a default version json file (at least to pin chromedriver to the version 73) and a user can define their own webdriver-manager json file.

When 74 is released, we will need to remove the pinned version from the repo and let users define their own json file. This could just be used just in case we run into the current chrome + chromedriver version mismatch.

@cnishina
Copy link
Member

From a previous comment in #306:

we will support a config file for pinning downloads and also starting the server. Instead of checking the file for the last version downloaded we could refer to the config first

cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."
- Added a unit test to the version_list to find max versions.

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."
- Added a unit test to the version_list to find max versions.

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Apr 24, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."
- Added a unit test to the version_list to find max versions.

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit to cnishina/webdriver-manager that referenced this issue Jun 6, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."
- Added a unit test to the version_list to find max versions.

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging angular#280, angular#358, angular#353. Additional work is still required to have a
config file that has this information instead of hard coding it.
cnishina added a commit that referenced this issue Jun 6, 2019
- Do a version match based on string startsWith of the maxVersion
  An example:

  Matching "0.1" might find versions 0.14.0, 0.151.0, 0.1.0. It will then
  get the max version which is 0.151. If a user wanted to get 0.1, then
  they could specify version "0.1."
- Added a unit test to the version_list to find max versions.

- Fix / update interchangable aliases:
  - selenium == standalone
  - chromedriver == chrome
  - geckodriver == gecko
  - iedriver = ie

Tagging #280, #358, #353. Additional work is still required to have a
config file that has this information instead of hard coding it.
@cnishina
Copy link
Member

cnishina commented Jun 6, 2019

I like having a configuration code in the repo but I also think it could be high maintenance. I just needed to release of the legacy branch to 12.1.5 because Chrome 75 came out. Maybe we could think of a better way to do this.

@cnishina
Copy link
Member

New idea.... we download the Chromium information, find the smallest version which (I think) is the stable version. So then we can download that ChromeDriver which should match most peoples Chrome versions.

So that's probably what should happen here and we should document this so this is no longer a big issue. Still should be marked as P0 although the action item is different. Will update the title.

@cnishina cnishina changed the title Add configuration to code Use Chromium's available versions to find the stable version of ChromeDriver Jul 31, 2019
@cnishina
Copy link
Member

Closing this bug in favor of #410. I might have duplicated the bug and plan to keep the latest since it has some work there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants