-
-
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
[🐛 Bug]: It would sure be nice to have a selenium-manager build for Raspberry Pi! #13287
Comments
@rbovet, 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! |
We'll revisit this option in the future, but we have no current plans for it. |
There are Chrome versions released by the Raspberry Pi Foundation, here: http://archive.raspberrypi.org/debian/pool/main/c/chromium-browser There are both arm64 and armhf versions and it is released consistently and promptly. I've been using these without fail for a couple of years now with a forked webdriver_manager (SergeyPirogov/webdriver_manager#540) I created that supports custom urls and templating, unfortunately my PR was rejected but I continue using my implementation. Not sure if that's considered "official" enough but then again, it is released by the Raspberry Pi Foundation itself so maybe it should be considered as such. At any rate, the error message that an end user is shown right now on Raspberry Pi is "Unable to obtain working Selenium Manager binary", which is not very informative nor accurate. It kinda hints that something went wrong obtaining to fetch/download the selenium manager binary whereas in reality a selenium-manager binary for that platform/architecture combination simply does not exist. I would have expected something like "unsupported architecture" but as it is, the implementation here:
really only checks the "platform" is supported, and since Raspberry Pi OS identifies as "linux" the code then proceeds only to fail due to the selenium-manager executable simply being missing. I think it would make sense to check for supported platform/architecture combinations and not for platform alone, then an appropriate message could be shown. Just my 2 cents. |
If the manager isn't there, then it's a packaging issue. All 3 binaries should be included, and if the OS reports as Linux, selenium should find the linux executable and try to use it, and it shouldn't work, and you should get an error from the OS directly that would indicate the architecture issue. |
Got it. I tried uninstalling and then installing Selenium 4.16.0 via pip 3 times and it is still missing. This is the directory listing on the pi:
Whereas this is the directory listing on my Mac:
Clearly the linux, macos and windows directories are missing. |
Hmmm, I found the issue, for some reason the wheel file at https://www.piwheels.org/simple/selenium/selenium-4.16.0-py3-none-any.whl DOES NOT contain the selenium-manager binaries at all! In contrast, the wheel file from https://pypi.org/project/selenium/ (at https://files.pythonhosted.org/packages/dc/72/96b5afa16908f9abc7c24b70adfd3a46c9740eb728ddfeab28379e38eaf9/selenium-4.16.0-py3-none-any.whl) DOES in fact contain the selenium-manager binaries. How can this be? Apparently in the default Raspberry Pi OS, pip.conf at "/etc/pip.conf" contains the following:
(more info here: https://stackoverflow.com/questions/62790359/why-is-my-raspberry-pi-searching-in-only-pypi-simple-version) |
I guess it makes sense that if you are custom building a package for a specific platform to remove the large binaries that won't work. |
I guess. Well since this is the default repo for RPs they are all bound to hit this same issue. Maybe this at least should be documented somewhere. Have no idea where would be a good place for that, I just know I spent several hours trying to sort all of this only to find that the binary isn't even compatible with RP. Maybe the binaries should be fetched based on the OS instead of bring in the wheel file, or at least attempt to fetch them if they are not present. If that was the case I would have gotten a sensible error message and would have move on. |
Can you PR a one line check for RP architecture and have it raise a better error? |
Sure, will do that! |
@titusfortner here you go: I ended up adding two lines though, not one 😄 |
My selenium chromedriver on Raspberry pi setup was working until very recently, I am not sure what happened. But now I'm getting this error when I try
Running
|
@maxp-hover turn on logging: We didn't change anything in 4.17 other than to add |
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. |
What happened?
Selenium itself is available for Raspberry Pi (linux arm and arm64 versions), but running the file command on selenium-manager reveals that it is an x86-64 build. Now that the Raspberry Pi 4 and 5 are out, they have plenty of power to handle lots of tasks. In my case, I want to use selenium from Ruby to do screen scraping but can't do that without an arm64 version of selenium-manager.
I found issue 11517 very interesting but only about mac-arm64.
How can we reproduce the issue?
Relevant log output
Operating System
Raspbian bullseye 64 bit (based on Debian 11)
Selenium version
Ruby 3.1.2
What are the browser(s) and version(s) where you see this issue?
chromium v119.0.6045.171 (Official Build) Built on Debian, running on Debian 11 (64-bit)
What are the browser driver(s) and version(s) where you see this issue?
selenium-webdriver 4.16.0, also selenium-webdriver 4.15.0
Are you using Selenium Grid?
no
The text was updated successfully, but these errors were encountered: