Your message dated Thu, 5 Mar 2026 18:36:34 +0200
with message-id <[email protected]>
and subject line Re: Bug#1128794: Selenium fails to obtain a Selenium Manager
when starting Chrome on Debian 13
has caused the Debian Bug report #1128794,
regarding Selenium fails to obtain a Selenium Manager when starting Chrome on
Debian 13
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1128794: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1128794
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: python3-seleniun
Version: 4.24.4+dfsg-1
The Python bindings for Selenium are no longer able to start Chromium on
x86_64 on a fresh install. The error says it cannot obtain a working
Selenium Manager. It's probably possible to work around this by
installing some components manually, but this used to work out of the
box in previous Debian releases. It feels like a regression that this
no longer works on Debian 13 (trixie).
Steps to reproduce this as root on a fresh trixie install:
```
# apt-get install python3-selenium
# cat > test.py <<EOF
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
options.add_argument("--no-sandbox")
driver = webdriver.Chrome(options=options)
driver.quit()
EOF
# python3 test.py
```
This script is very standard usage that's similar to the example given
in lots of introductions to Selenium, e.g.:
* https://www.selenium.dev/documentation/
* https://tecadmin.net/setup-selenium-with-python-on-ubuntu-debian/
* https://github.com/qxf2/selenium-beginners/blob/master/01_Navigate_Url.py
I expect it to take a second or so to initialise Chromium, and then exit
successfully without output; however, it fails with the following output:
```
Traceback (most recent call last):
File
"/usr/lib/python3/dist-packages/selenium/webdriver/common/driver_finder.py",
line 67, in _binary_paths
output = SeleniumManager().binary_paths(self._to_args())
File
"/usr/lib/python3/dist-packages/selenium/webdriver/common/selenium_manager.py",
line 47, in binary_paths
args = [str(self._get_binary())] + args
~~~~~~~~~~~~~~~~^^
File
"/usr/lib/python3/dist-packages/selenium/webdriver/common/selenium_manager.py",
line 99, in _get_binary
raise WebDriverException(f"Unable to obtain working Selenium
Manager binary; {path}")
selenium.common.exceptions.WebDriverException: Message: Unable to obtain
working Selenium Manager binary;
/usr/lib/python3/dist-packages/selenium/webdriver/common/linux/selenium-manager
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/test.py", line 7, in <module>
driver = webdriver.Chrome(options=options)
File
"/usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py",
line 45, in __init__
super().__init__(
~~~~~~~~~~~~~~~~^
browser_name=DesiredCapabilities.CHROME["browserName"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
keep_alive=keep_alive,
^^^^^^^^^^^^^^^^^^^^^^
)
^
File
"/usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py",
line 50, in __init__
if finder.get_browser_path():
~~~~~~~~~~~~~~~~~~~~~~~^^
File
"/usr/lib/python3/dist-packages/selenium/webdriver/common/driver_finder.py",
line 47, in get_browser_path
return self._binary_paths()["browser_path"]
~~~~~~~~~~~~~~~~~~^^
File
"/usr/lib/python3/dist-packages/selenium/webdriver/common/driver_finder.py",
line 78, in _binary_paths
raise NoSuchDriverException(msg) from err
selenium.common.exceptions.NoSuchDriverException: Message: Unable to
obtain driver for chrome; For documentation on this error, please visit:
https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
```
The server has Chromium version 145.0.7632.109-1~deb13u3 (together with
the same versions of chromium-common, chromium-driver and
chromium-standbox) from Debian.
The --no-sandbox option is passed to Chromium to allow it to run as
root, which I'm doing here to simplify the example; if you create a
non-root user and run the test script as that, you can remove that
option, but it fails in exactly the same way, so I don't think that's
relevant.
Precisely the same steps on a fresh Debian 12 (bookworm) install works
fine, by which I mean the program exits without printing any output and
more complicated test scripts suggest it really is working correctly.
The Debian 12 server is running Selenium 4.8.3+dfsg-1 and Chromium
145.0.7632.109-1~deb12u3.
If I install strace and trace the script on Debian 12, this tells me it
loads
/usr/lib/python3/dist-packages/selenium/webdriver/common/selenium_manager.py,
and then executes /usr/bin/chromedriver and then /usr/bin/chromium. On
Debian 13, it still loads selenium_manager.py, but does not attempt to
execute chromedriver, chromium or anything else. Instead, it attempts
to newfstatat(2)
/usr/lib/python3/dist-packages/selenium/webdriver/common/linux/selenium-manager,
which does not exist. It does not attempt to do this to this on Debian
12. Running `find / -name \*selenium-manager\*` finds nothing on either
Debian 12 or 13.
I haven't tested on Debian 11 (bullseye), but I'm pretty confident this
script would have worked fine out of the box there. There isn't a newer
package for me to test in either forky or sid.
It seems to me that there is probably a missing dependency here: that
the python3-selenium package in Debian 13 needs to depend on something
to provide selenium-manager, however I've not been able to work out
which package (if any) does provide that on Debian 13.
I suspect that this bug is the same as this one reported upstream as
occurring in Ubuntu 23.10 which apparently ships with Selenium 4.11.2
(i.e. a more recent version than Debian 12, though substantially older
than Debian 13's):
https://github.com/SeleniumHQ/selenium/issues/14130
The Selenium developers didn't seem interested in investigating a
problem in anything other than the newest upstream version, which that
wasn't. They say you should install Selenium with pip and ignore the
distribution's copy.
--- End Message ---
--- Begin Message ---
Hello Richard,
Am Sun, Feb 22, 2026 at 08:32:22PM +0000 schrieb Richard Smith:
> Package: python3-seleniun
> Version: 4.24.4+dfsg-1
>
> The Python bindings for Selenium are no longer able to start Chromium on
> x86_64 on a fresh install. The error says it cannot obtain a working
> Selenium Manager. It's probably possible to work around this by installing
> some components manually, but this used to work out of the box in previous
> Debian releases. It feels like a regression that this no longer works on
> Debian 13 (trixie).
You probabaly did miss the information from the README file of the
package.
$ less /usr/share/doc/python3-selenium/README.Debian | tail -n 40
python3-selenium >= 4.11.2+dfsg1 and Selenium Manager
-----------------------------------------------------
Upstream restructured the source code so the Selenium Manager is now needed
to act as a middle layer which will search for available driver interfaces.
Selenium Manager is a binary tool generated using Rust that provides
automated driver management for Google Chrome, Chromium, Mozilla Firefox,
and Microsoft Edge.
At the time of writing it's not packaged for Debian. In order to make
python3-selenium usable with this new circumstance you will need to adjust your
source in a way to choose the used driver directly and skip the calling of the
manager code in Selenium. Please have a look at the following example how to
archieve this.
-----%<----
# other includes
from selenium.webdriver.chrome.service import Service as ChromeService
# potential other existing python code in your application
# to prepare your setup
# set the to used driver, here as example for the chrome-driver
service = ChromeService(executable_path="/usr/bin/chromedriver")
# give the chosen driver as option to the intatioation of Chrome()
driver = webdriver.Chrome(options = chrome_options, service = service)
# more code potentially comes here
----->%----
You might want to look at the autopkgtest for python-selenium to see the
adaption of the manually setup for the driver to use.
https://sources.debian.org/src/python-selenium/4.11.2%2Bdfsg-1/debian/tests/test-chromium/
-- Carsten Schoenert <[email protected]> Fri, 1 Sep 2023 21:33:09 +0530
You need to modify your example code like this in principle:
$ cat selenium-test.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
# set the to used driver, here as example for the chrome-driver
service = ChromeService(executable_path="/usr/bin/chromedriver")
options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
options.add_argument("--no-sandbox")
# This isn't working that way anymore due the not available selenium-manager.
## driver = webdriver.Chrome(options=options)
# give the chosen driver as option to the instantiation of Chrome()
driver = webdriver.Chrome(options=options, service=service)
driver.quit()
Until now nothing has changed around the situation of selenium-manager
in Debian, I will not spend any time on packaging this peace of software
as it's simply not familiar with bazel and also with Rust.
Also there are more alternatives available since a while so dealing with
the kind Selenium upstream development is happen (in Debian) isn't a
showstopper to run web tests.
Since a while there is Playwright [1] packaged [2] in Debian that can do
the same as Selenium. I haven't tested but looking at the dependencies
you can at the moment just use the package from testing (also the dep
python3-greenlet) also in Trixie.
[1] https://playwright.dev/
[2] https://tracker.debian.org/pkg/python-playwright
Regards
Carsten
--- End Message ---