Dependencies
Feature and motivation
Right now each of the bindings are processing drivers in this order:
- User provided specific location
- If driver isn't specified, it is looked for in each directory listed in PATH environment variable
- If not provided and not found in PATH, tries to get Selenium Manager to find it
We've told users to try Selenium Manager by deleting drivers and stop using 3rd party managers. One issue we've seen is that there are users with old versions of drivers in directories on their PATH that they do not know about (#11269).
We can fix this, as well as dramatically increase the usage of Selenium Manager by having Selenium Manager check if a driver is on PATH, and checking its version; if the version is compatible, use that one; if it isn't, use Selenium Manager to download the right one (and raise a warning that an old one exists).
Bindings: because not everyone can use Selenium Manager, yet, these will still also need to check PATH, but will do so *after Selenium Manager errors, not before like now.
Note: I would love for Selenium bindings not to have to ever deal with PATH again, but we're a long way out from being able to use Selenium Manager for everything by itself.
Considerations
- Outdated driver is found on PATH
- Raise Error — this was my initial suggestion for this feature in beta, and now I don't like it
- Log Warning and use it — Based on "don't remediate" I think this is the right answer for now
- Ignore it and download new one — this is what we are moving to
- Selenium Manager Error
- Bindings catch error and try locating on PATH — This is safe, but probably overkill
- Bindings no longer do PATH and users are directed to other fixes — This is easier
Dependencies
Feature and motivation
Right now each of the bindings are processing drivers in this order:
We've told users to try Selenium Manager by deleting drivers and stop using 3rd party managers. One issue we've seen is that there are users with old versions of drivers in directories on their PATH that they do not know about (#11269).
We can fix this, as well as dramatically increase the usage of Selenium Manager by having Selenium Manager check if a driver is on PATH, and checking its version; if the version is compatible, use that one; if it isn't, use Selenium Manager to download the right one (and raise a warning that an old one exists).
Bindings: because not everyone can use Selenium Manager, yet, these will still also need to check PATH, but will do so *after Selenium Manager errors, not before like now.
Note: I would love for Selenium bindings not to have to ever deal with PATH again, but we're a long way out from being able to use Selenium Manager for everything by itself.
Considerations