-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
Initial version of Selenium Manager (1.0.0-M1) #11078
Conversation
Excellent! The way I'm expecting to use this, is to build it, put it in When I put it in that location manually right now on Mac, the below code works:
SeleniumManager itself looks like:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Please add a README
- link to installing Rust
- usage
- status / roadmap (checkboxes?)
- I think the output should just be the location of the file without formatting to make it easier to use the result. Would that be possible?
We should also look at building this with bazel |
|
This is otherwise working code for Ruby. ac90661 |
893b921
to
82554bd
Compare
Thanks a lot for your feedback, @titusfortner, and @AutomatedTester! Some comments about it:
|
82554bd
to
eb56945
Compare
The code I implemented is the fallback option implementation (it is not used when the system finds a driver on PATH, even when that driver is wrong version, etc). Now that I'm actually working with it, I see that our conversation before doesn't matter. If we can build it, we can package it, if we package it we can put it in a known location within the package. There's no reason to then put it on the system, or for a user to have to (or be suggested to) download it to use it with latest Selenium. I see what you mean about using output to manage errors, it feels a little weird for some reason, but I've never created a standalone process before, so my instincts are probably off. :) |
The only blocker I see for incorporating "beta1" into bindings is ability to generate Mac, Linux, windows binaries with bazel. |
|
||
use crate::files::parse_version; | ||
|
||
#[tokio::main] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should just be async instead of using the tokio::main macro, this prevents it from being used in existing projects that are async, this code can also just be sync.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you like to send us a pull request to improve the code?
Description
This PR contains the initial version of Selenium Manager (1.0.0-M1). Selenium Manager is a CLI tool that can be executed (using Cargo) as follows:
For instance, the command required to manage chromedriver is the following:
If everything is correct, the last line contains the path to the driver (which will be used in the bindings). To get
DEBUG
traces, we can use:The next steps are:
Motivation and Context
As discussed in the TLC, Selenium Manager will be the tool implementing the "batteries included" concept in Selenium. The first milestone (M1) of Selenium Manager is devoted to automated driver management for Chrome (chomedriver), Firefox (geckodriver), and Edge (msedgedriver).
Types of changes
Checklist