Skip to content

[🚀 Feature]: Cache Selenium Manager #11359

@titusfortner

Description

@titusfortner

Status

For now, we're only doing this in Java, because Java is the only one that requires streaming it for each process.
Fixed by #12539

Feature and motivation

Right now, Java is decompressing the binary and putting it in a temp file, and all the other bindings are using them directly from where they are stored from within the respective package.

One option is to have the bindings as part of getBinary():

  1. check to see if the manager exists at a designated location (~/.cache/selenium/selenium-manager/mac64/selenium-manager)
  2. If it is get the version
  3. Compare the version to the "latest" (to start with we should keep this a constant with the selenium version being used)
  4. If it is the latest, use it, if it isn't decompress/stream/move from package to the cache location

The advantages are:

  1. No copying to temp files
  2. It would be the first step for Selenium Manager Manager ([🚀 Feature]: Selenium Manager Manager #11358) if we went that route
  3. I can just copy test binaries into the system directory to test them instead of needing to go through bazel (hard in some language, and actually impossible in .NET right now)

Usage example

n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-javaJava BindingsI-enhancementSomething could be better

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions