Skip to content
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 - Provide an easy way to execute selenium-server from bindings #13361

Closed
lprimak opened this issue Dec 26, 2023 · 4 comments

Comments

@lprimak
Copy link

lprimak commented Dec 26, 2023

Feature and motivation

Currently, it's possible to call SeleniumManager.getInstance().getDriverPath() to get a path to the driver.
What that does is actually downloads the selenium-manager executable and I can call it with --grid option to download the selenium-server JAR.

There needs to be an easier way to download and get the path of the JAR selenium-server-4.16.1.jar.

Usage example

Currently, I am forced to write code like this to achieve this goal:

    static Path downloadManager() {
        Path managerPath = getManagerPath();
        managerPath.getParent().toFile().mkdirs();
        System.out.printf("ChromeDriver path: %s, Selenium Manager Path: %s\n",
                SeleniumManager.getInstance().getDriverPath(new ChromeOptions(), false).getDriverPath(),
                managerPath);
        return managerPath;
    }

    static private Path getManagerPath() {
        String cachePath = "~/.cache/selenium".replace("~", System.getProperty("user.home"));
        String cachePathEnv = System.getenv("SE_CACHE_PATH");
        if (cachePathEnv != null) {
            cachePath = cachePathEnv;
        }
        Path cacheParent = Paths.get(cachePath);
        String binaryName = "selenium-manager" + (Platform.getCurrent().is(Platform.WINDOWS) ? ".exe" : "");
        var releaseLabel = new BuildInfo().getReleaseLabel();
        int lastDot = releaseLabel.lastIndexOf(".");
        String minorVersion = releaseLabel.substring(0, lastDot);
        String seleniumManagerVersion = "0." + minorVersion;
        return Paths.get(cacheParent.toString(), String.format("/manager/%s/%s", seleniumManagerVersion, binaryName));
    }
}

Then execute selenium-manager from further Java code to download the selenium server JAR and execute that.
This is error-prone and needlessly copies existing code from the bindings.

Copy link

@lprimak, thank you for creating this issue. We will troubleshoot it as soon as we can.


Info for maintainers

Triage this issue by using labels.

If information is missing, add a helpful comment and then I-issue-template label.

If the issue is a question, add the I-question label.

If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted label.

If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C), add the applicable G-* label, and it will provide the correct link and auto-close the issue.

After troubleshooting the issue, please add the R-awaiting answer label.

Thank you!

@lprimak lprimak changed the title [🚀 Feature]: Provide a way to call selenium-manager --grid from bindings [🚀 Feature]: Selenium Manager - Provide an easy way to execute selenium-server from bindings Dec 26, 2023
@titusfortner
Copy link
Member

There's two things.

First, this specific request is a duplicate of #12305. At this point it is also dependent on doing this: #13022. It will happen, soon-ish, not sure exact timeframe.

The second thing, is if you're in Java, you can use the jar directly...

import org.openqa.selenium.grid.Main;

Use it like this: https://github.com/SeleniumHQ/seleniumhq.github.io/blob/trunk/examples/java/src/test/java/dev/selenium/BaseTest.java#L76-L95

@titusfortner titusfortner closed this as not planned Won't fix, can't repro, duplicate, stale Dec 26, 2023
@lprimak
Copy link
Author

lprimak commented Dec 27, 2023

Thanks Titus, that helped!

Copy link

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.

@github-actions github-actions bot locked and limited conversation to collaborators Jan 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants