-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[rust] Support for beta/dev/canary browser version detection with Selenium Manager (#11239) #11334
Conversation
3daf3e3
to
a9fa5ff
Compare
I'm not getting what I expect from this:
|
I'm not sure what you were expecting, but this PR includes extra commands to discover the version of non-prod browsers. A good way to understand a bit better what is happening is running the commands using |
I'm expecting the driver version to be the correct one for the browser version I'm requesting. |
Oh, except I renamed it so manager wouldn't be able to find it, lol.
chromedriver storage will never have canary, you need to get the driver from chromium storage: https://chromedriver.chromium.org/chromedriver-canary |
Regarding 1, in my opinion, Selenium Manager should make the best effort to provide the best driver possible. Throwing an error because the browser detection is failing is not the best choice, IMO, since the Regarding 2, I don't know if it is worth it, since driving a canary browser is something very few people will do. Regarding 3, Selenium Manager is throwing an error since chromedriver 110 (stable) has yet to be released. But to be coherent with 1), I think this case should fallback to |
I agree on points 1 and 3. But maybe we should look into the Canary thing. I see more people wanting to test with unreleased versions to detect bugs early. |
No problem, I can take a look on how to support the chromedriver canary for the next release. |
Only by default. If a user *specifies something and we can't provide that, it needs to error. This is just like with Capabilities class. If a person thinks they are getting one thing but are actually getting another, you end up with Type II errors, which are a bigger deal. As far as Canary goes, I don't think it ever gets released, just beta & dev channels. Canary requires using a nightly build. I think we probably want to support beta and dev and not canary right now. |
Chrome Canary can be downloaded https://www.google.com/chrome/canary/, and IIRC, it updates itself. |
Another option, to reduce the pain of figuring out which build of the ChromeDriver is needed to work with the Canary browser, we could pass |
Yeah, Canary download is easy. Canary *drivers are hard. Canary browser with Dev channel drivers works, but I'm not sure we want to just do that.
If Selenium Manager knew it was being set, though, it could do things like:
Might just make more sense to require user to be explicit in the code:
or
|
I take it back, Selenium Manager should throw the error if user provides incompatible versions *unless |
If we decide to error when browser detection does not find the browser version (e.g., In any case, to progress in the development, I would merge this PR (and #11371, which has been created over this one). |
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.
When I execute this line:
./selenium-manager --browser chrome --browser-version dev
If dev doesn't exist on the machine, it returns the location of prod driver.
If dev does exist on the machine, it errors because there isn't a v110 driver released.
In the first case it should error because the browser version doesn't exist.
In the second case, I actually think it should include a warning and return v109 driver. That would mean specifically checking to see if we get No such object: chromedriver/LATEST_RELEASE_110
.
Why does the PR have changes that mention IEDriver too? Wasn't that already merged? |
The changes related to IEDriverServer is just in the README, since I forgot to include it in #11279 (and the current PR updates a bit the README). |
But this is making more changes than the README https://github.com/SeleniumHQ/selenium/pull/11334/files#diff-2166be5cf60b67e7f0945ccac14fbe86ae137fe7fb71914482031de897dc70f3 |
@bonigarcia this makes sense. So, either we work on supporting |
Yes, it is a good idea. To simplify the development on my side, I would prefer to merge this PR as it is now and #11371 (which has been created over this one). Then, I will make the new changes over #11371 (since it includes a relevant refactoring in the Rust code). |
OK, then let's merge this and follow up in the next one. |
Can we open a new issue to track what needs to be done? |
Description
This PR include support for browser version detection, considering not only stable versions, but also beta/canary/dev for Chrome, Firefox, Edge.
Motivation and Context
As discussed in TLC, the detection of non-prod browsers will be a feature that needs to be explicitly requested, e.g.:
Types of changes
Checklist