-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
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
[🚀 Feature]: Selenium Manager check drivers on PATH #11356
Comments
Important to note that this will depend on #11351 so we know for sure which browser we need to be matching driver versions for. |
Ok, so all of the prereqs I discussed have been implemented... Current Behavior:
Desired Behavior:
Proposed Beta Behavior:
|
I think this depends on #11639 |
Also, I just found another blocker, this one in Rust. If a valid driver is available on PATH, but the computer does not have internet access. Selenium Manager binary errors out instead of using it:
|
Everything on the bindings side should be super easy now that we've decided to take the easy path here. The only one that is going to be tough is .NET because the DriverFinder class is evaluating potentially previously found driver on PATH rather than looking for it directly, so more logic will need to be changed. |
Why is #11639 a dependency? |
For grid. We need to enable SM so it will find drivers on path, but not download new drivers. |
Implemented in all bindings now. |
This change is going to break all architectures that do not have a selenium-manager compatible binary (for example Raspbian with armv7l) without intervention. It may be worthwhile to roll it back. Since I use a Java implementation of selenium on Raspbian, I can do the following to work around this for the time being:
|
There are so few people on armv7l that we believe the tradeoff is worth it overall. Please set the location to the driver with the system property or with a method on a service instance. Sorry for the extra work. |
Yea, you are probably right, this probably impacted only a few people, and I can just use the |
Well, I'm trying to get it so we can remove all the executable finder code in all the languages 😂 Manual management and specifying the location is likely the solution for foreseeable future. Perhaps if we add a feature like #11359 you might be able to build your own selenium manager on your architecture, would need rust to compile it. But then we'd have to point it to electron to get the driver? |
Totally makes sense! I might hack a bit, I did get
Steps:
|
Okay, going to punt a bit for now, since However, if there is interest in expanding |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
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
The text was updated successfully, but these errors were encountered: