1

I got an error with seleniumbase on a python script on an amazon aws codebuild service execution. any suggestions to look for?

pythonscript

...
with SB(headless=True,xvfb=True) as sb:
...

python: requirements.txt

selenium==4.10.0
seleniumbase==4.16.2
chromedriver-binary==117.0.5937.0.0

amazon aws configurations are: Linux with aws/codebuild/standard:7.0 and python 3.x environment

Warning: chromedriver not found. Getting it now:

*** chromedriver version for download = 114.0.5735.90 (Latest)

Downloading chromedriver_linux64.zip from:
https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip ...
Download Complete!

Extracting ['chromedriver'] from chromedriver_linux64.zip ...
Unzip Complete!

The file [chromedriver] was saved to:
/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/drivers/chromedriver

Making [chromedriver 114.0.5735.90] executable ...
[chromedriver 114.0.5735.90] is now ready for use!

Traceback (most recent call last):
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/core/browser_launcher.py", line 3288, in get_local_driver
    return webdriver.Chrome(options=chrome_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 49, in __init__
    super().__init__(
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 54, in __init__
    super().__init__(
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 206, in __init__
    self.start_session(capabilities)
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 291, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 346, in execute
    self.error_handler.check_response(response)
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
Stacktrace:
#0 0x55a30663a4e3 <unknown>
#1 0x55a306369c76 <unknown>
#2 0x55a306390757 <unknown>
#3 0x55a30638f029 <unknown>
#4 0x55a3063cdccc <unknown>
#5 0x55a3063cd47f <unknown>
#6 0x55a3063c4de3 <unknown>
#7 0x55a30639a2dd <unknown>
#8 0x55a30639b34e <unknown>
#9 0x55a3065fa3e4 <unknown>
#10 0x55a3065fe3d7 <unknown>
#11 0x55a306608b20 <unknown>
#12 0x55a3065ff023 <unknown>
#13 0x55a3065cd1aa <unknown>
#14 0x55a3066236b8 <unknown>
#15 0x55a306623847 <unknown>
#16 0x55a306633243 <unknown>
#17 0x7f4c536f3b43 <unknown>During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/codebuild/output/src142791221/src/git-codecommit.eu-west-1.amazonaws.com/v1/repos/beryllium/odoo_e2e_tester/run.py", line 4, in <module>
    src.main()
  File "/codebuild/output/src142791221/src/git-codecommit.eu-west-1.amazonaws.com/v1/repos/beryllium/odoo_e2e_tester/src/__init__.py", line 6, in main
    tester.run()
  File "/codebuild/output/src142791221/src/git-codecommit.eu-west-1.amazonaws.com/v1/repos/beryllium/odoo_e2e_tester/src/odoo_e2e_tester/odoo_e2e_tester.py", line 76, in run
    self.story_validator.validate_stories(story_pipeline_queue, report_pipeline_queue)
  File "/codebuild/output/src142791221/src/git-codecommit.eu-west-1.amazonaws.com/v1/repos/beryllium/odoo_e2e_tester/src/story_validator/story_validator.py", line 35, in validate_stories
    with SB(
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/plugins/sb_manager.py", line 815, in SB
    sb.setUp()
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/fixtures/base_case.py", line 13915, in setUp
    self.driver = self.get_new_driver(
                  ^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/fixtures/base_case.py", line 3818, in get_new_driver
    new_driver = browser_launcher.get_driver(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/core/browser_launcher.py", line 1261, in get_driver
    return get_local_driver(
           ^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/seleniumbase/core/browser_launcher.py", line 3368, in get_local_driver
    return webdriver.Chrome(options=chrome_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 49, in __init__
    super().__init__(
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 54, in __init__
    super().__init__(
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 206, in __init__
    self.start_session(capabilities)
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 291, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 346, in execute
    self.error_handler.check_response(response)
  File "/root/.pyenv/versions/3.11.4/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
Stacktrace:
#0 0x5557ce5a34e3 <unknown>
#1 0x5557ce2d2c76 <unknown>
#2 0x5557ce2f9757 <unknown>
#3 0x5557ce2f8029 <unknown>
#4 0x5557ce336ccc <unknown>
#5 0x5557ce33647f <unknown>
#6 0x5557ce32dde3 <unknown>
#7 0x5557ce3032dd <unknown>
#8 0x5557ce30434e <unknown>
#9 0x5557ce5633e4 <unknown>
#10 0x5557ce5673d7 <unknown>
#11 0x5557ce571b20 <unknown>
#12 0x5557ce568023 <unknown>
#13 0x5557ce5361aa <unknown>
#14 0x5557ce58c6b8 <unknown>
#15 0x5557ce58c847 <unknown>
#16 0x5557ce59c243 <unknown>
#17 0x7f02b2d06b43 <unknown>
Thomas
  • 33
  • 9

2 Answers2

1

If you upgrade to the latest version of seleniumbase, (currently 4.17.2), then that should resolve your issue. The Chromium Team recently changing how drivers are packaged. The new: https://googlechromelabs.github.io/chrome-for-testing/ (The old: https://chromedriver.chromium.org/downloads).

SeleniumBase very recently made changes to support the newer drivers once the Chromium Team fixed a bug in them. (See https://github.com/seleniumbase/SeleniumBase/issues/1983)

Here's a simple script to verify UC Mode with seleniumbase installed:

from seleniumbase import SB

with SB(uc=True) as sb:
    sb.open("https://nowsecure.nl/#relax")
    sb.sleep(2)
    if not sb.is_text_visible("OH YEAH, you passed!", "h1"):
        sb.get_new_driver(uc=True)
        sb.open("https://nowsecure.nl/#relax")
        sb.sleep(2)
    sb.assert_text("OH YEAH, you passed!", "h1", timeout=4)
    sb.sleep(2)
Michael Mintz
  • 9,007
  • 6
  • 31
  • 48
  • If Chrome isn't already installed, the newly-released Selenium Manager automatically downloads it (https://github.com/SeleniumHQ/selenium/issues/11676) – Michael Mintz Aug 09 '23 at 12:43
0

The problem lies in the fact that there was no chrome installed.

apt update && apt install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb
Thomas
  • 33
  • 9