Description
The original plan for the selenium manager contract was for it to be opt-in while in beta and then the full release would be opt-out
When we moved PATH detection from bindings to Selenium Manager, we broke this contract a little bit for convenience sake when there weren't side-effects. But, for instance, when we added plausible integration, we didn't exempt drivers found on path from that flow, which further eroded the original contract.
I think there is only one place remaining where we make a distinction, and I think it has become a distinction without a difference.
Right now if SM finds a driver on PATH it will use it unless the user has specified a version in their options class.
If the driver version does not match the browser SM detects on the system it doesn't download a new driver, it just logs a warning, even though we know that it will error.
This is intentional because of the contract we agreed to at the beginning: if user is managing the drivers themselves, SM must respect it.
The actually desired implementation is in order:
- use browser with specified version
- use browser installed on system
- use latest stable browser
Then download browser if necessary and always ensure the most correct driver for that browser we can provide (lots of edge cases here but we handle these pretty well right now)
I can't think of a scenario where making this change now negatively impacts users. The biggest change is that many users with slightly out of sync driver/browser versions will have more correct driver versions downloaded now, and fixing it will be a good thing.
Have you considered any alternatives or workarounds?
No response
Description
The original plan for the selenium manager contract was for it to be opt-in while in beta and then the full release would be opt-out
When we moved PATH detection from bindings to Selenium Manager, we broke this contract a little bit for convenience sake when there weren't side-effects. But, for instance, when we added plausible integration, we didn't exempt drivers found on path from that flow, which further eroded the original contract.
I think there is only one place remaining where we make a distinction, and I think it has become a distinction without a difference.
Right now if SM finds a driver on PATH it will use it unless the user has specified a version in their options class.
If the driver version does not match the browser SM detects on the system it doesn't download a new driver, it just logs a warning, even though we know that it will error.
This is intentional because of the contract we agreed to at the beginning: if user is managing the drivers themselves, SM must respect it.
The actually desired implementation is in order:
Then download browser if necessary and always ensure the most correct driver for that browser we can provide (lots of edge cases here but we handle these pretty well right now)
I can't think of a scenario where making this change now negatively impacts users. The biggest change is that many users with slightly out of sync driver/browser versions will have more correct driver versions downloaded now, and fixing it will be a good thing.
Have you considered any alternatives or workarounds?
No response