Skip to content

[πŸš€ Feature]: Change Selenium Manager PATH behaviorΒ #17554

@titusfortner

Description

@titusfortner

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions