-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
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 support more architectures #11357
Comments
@titusfortner, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
Well, played around a bit, and I could do: Note this builds per the cross repo:
I could not figure out how to get those working, though; someone who knows more about docker than how to spell it might get further. |
Is this related to the process of consolidating Selenium and Appium by making sure that Selenium can support the same architecture as Appium? |
No, this is just making sure that people using Selenium on these architectures are automatically obtaining the correct drivers if publicly available. |
@bonigarcia so this is essentially a rust question. Which of the drivers that get published is Selenium Manager looking for based on architecture? (e.g. does it always get win32 driver instead of the win64 geckodriver or edgedriver?) I'm trying to figure out the different scenarios and what kinds of errors. What driver does S/M return when:
Are there combinations where nothing is obtained and an error is thrown? What is that error? |
I'm playing around with Windows ARM and prebuilt SM downloads win32 for Chrome and win64 for Edge/Firefox:
|
So we should be getting the win-arm64 versions of msedgedriver and geckodriver. |
Yes, we should
I guess the current behavior is fine as long ChromeDriver works. |
Do we know if it does? I'm kind of curious why Google doesn't release a separate binary, or what might not work. I guess all we can do is give the best option available and figure it out from there. |
I suppose it works given Ruby tests for Chrome pass on my Windows VM. |
Regarding chromedriver, it is ok that Selenium Manager in Windows always downloads the x32 architecture since that's the only one published by the chromedriver team. Regarding geckodriver and msedgedriver in Windows, Selenium Manager in Windows currently only supports x32 and x64 architectures. I can prepare a patch to support ARM64 for those Windows drivers (although I don't have an ARM64 machine to test with). |
@p0deje Can you run the following command in your Windows ARM64 and tell me the output, please?
|
@bonigarcia There you go, I can test this as soon as you have a new version (I can also build manager now)!
|
Thanks @p0deje. I have just committed a patch to enable the detection of ARM in Windows (branch https://github.com/SeleniumHQ/selenium/actions/runs/4787671731 |
I updated the original post. Green checkmarks are the ones I'm pretty sure that Selenium Manager downloads right now. Red X's aren't supported by the driver. The empty boxes are the ones that have a driver, but I don't know if SM will grab them. @bonigarcia can you verify which drivers can be downloaded right now based on architectures we are parsing? Thanks! |
@bonigarcia It works great!
|
@titusfortner The empty boxes on win64 should be green. Also, with the latest patch (branch |
So it's just the geckodriver, linux 32 & Linux ARM that aren't getting used? |
That's right. |
Are those easy to toggle for/add? Would love to close this issue and not think/worry about architectures any more. 😂 |
I think these drivers would be supported if these Selenium Manager binaries (i.e. Linux 32 and Linux ARM64) would be generated. |
Can we cross compile Linux 32 bit on the 64bit container? I think(?) it might work for all Linux implementations similar to what we do for windows? |
I didn't try, but I suppose it is possible.
I'm not sure about that, perhaps it is possible, like in Windows, but I didn't try. |
Do we plan to support any other architecture (e.g. Linux ARM) at this moment? If not, can we close this issue? |
Does win-arm64 work for Edge & Firefox? The ones that aren't supported are Linux 32 bit & Linux ARM, and yeah, I think we're ok ignoring those for now. |
I don't understand this question |
@p0deje did you say that the windows binary we have works for you on your M1 in Windows VM? |
@titusfortner yes, it works fine #11357 (comment) |
So, yeah. we support 100% of chrome & edge drivers & 97% of geckodriver downloads. We can close. |
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. |
Feature and motivation
Quick check of what architectures are supported by each driver...
Which of these should we support?
Do we need to wait until we can get rust and/or bazel to cross compile?
It looks like cross-compilation with
cross
might be straightforward - https://kerkour.com/rust-cross-compilationThe text was updated successfully, but these errors were encountered: