Ich nutze odoo 17 als Warenwirtschaft und möchte über Python Webseiten laden. Da manches erst nach der Anzeige gerendert wird, muss ich Selenium nutzen. Bekomme es aber nicht zum laufen.
Ich denke es liegt an einer Inkompatibilität oder ein Berechtigungsproblem. Google Chrom 114 habe ich manuell installiert, da für Selenium es keinen neueren Treiber gibt.
Alles wird mit dem user odoo ausgeführt.
Es wird auch kein Log in /tmp/ angelegt. Schreibrechte hat odoo
Mein Codeschnippel:
Code: Alles auswählen
# Chrome-Optionen für Selenium (ohne UI)
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
service = Service(
ChromeDriverManager().install(),
log_path="/tmp/chromedriver.log", # Speichere die Logs hier
service_args=["--verbose", "--log-path=/tmp/chromedriver_detailed.log"] # Ausführliche Logs
)
driver = webdriver.Chrome(service=service)
driver.get("https://www.google.com")
self.logger(driver.title)
Code: Alles auswählen
root@odoo17:/tmp# google-chrome --version
Google Chrome 114.0.5735.90
Code: Alles auswählen
root@odoo17:/tmp# /odoo/.wdm/drivers/chromedriver/linux64/114.0.5735.90/chromedriver --version
ChromeDriver 114.0.5735.90 (386bc09e8f4f2e025eddae123f36f6263096ae49-refs/branch-heads/5735@{#1052})
Code: Alles auswählen
root@odoo17:/tmp# sudo apt-get update
sudo apt-get install -y libnss3 libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libx11-xcb1
OK:1 http://at.archive.ubuntu.com/ubuntu jammy InRelease
OK:2 http://at.archive.ubuntu.com/ubuntu jammy-updates InRelease
Holen:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
OK:4 http://at.archive.ubuntu.com/ubuntu jammy-backports InRelease
Holen:5 https://dl.google.com/linux/chrome/deb stable InRelease [1.825 B]
OK:6 http://security.ubuntu.com/ubuntu focal-security InRelease
OK:7 http://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease
Holen:9 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1.219 B]
OK:8 http://mirrors.edge.kernel.org/ubuntu xenial InRelease
Es wurden 132 kB in 1 s geholt (116 kB/s).
Paketlisten werden gelesen… Fertig
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
libatk-bridge2.0-0 ist schon die neueste Version (2.38.0-3).
libatk-bridge2.0-0 wurde als manuell installiert festgelegt.
libatk1.0-0 ist schon die neueste Version (2.36.0-3build1).
libgconf-2-4 ist schon die neueste Version (3.2.6-7ubuntu2).
libnss3 ist schon die neueste Version (2:3.98-0ubuntu0.22.04.2).
libx11-xcb1 ist schon die neueste Version (2:1.7.5-1ubuntu0.3).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 17 nicht aktualisiert.
Code: Alles auswählen
2024-11-22 09:18:48,503 76075 INFO odoo17_live WDM: ====== WebDriver manager ======
2024-11-22 09:18:49,118 76075 INFO odoo17_live WDM: Get LATEST chromedriver version for google-chrome
2024-11-22 09:18:49,410 76075 INFO odoo17_live WDM: About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip
2024-11-22 09:18:49,674 76075 INFO odoo17_live WDM: Driver downloading response is 200
2024-11-22 09:18:50,689 76075 INFO odoo17_live WDM: Get LATEST chromedriver version for google-chrome
2024-11-22 09:18:51,410 76075 INFO odoo17_live WDM: Get LATEST chromedriver version for google-chrome
2024-11-22 09:18:51,967 76075 INFO odoo17_live WDM: Driver has been saved in cache [/odoo/.wdm/drivers/chromedriver/linux64/114.0.5735.90]
2024-11-22 09:18:52,154 76075 ERROR odoo17_live odoo.http: Exception during request handling.
Traceback (most recent call last):
File "/odoo/odoo-server/odoo/http.py", line 2192, in __call__
response = request._serve_db()
File "/odoo/odoo-server/odoo/http.py", line 1768, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/odoo/odoo-server/odoo/service/model.py", line 133, in retrying
result = func()
File "/odoo/odoo-server/odoo/http.py", line 1795, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/odoo/odoo-server/odoo/http.py", line 1999, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/odoo/odoo-server/odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "/odoo/odoo-server/odoo/http.py", line 725, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/odoo/odoo-server/addons/web/controllers/dataset.py", line 28, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/odoo/odoo-server/addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 468, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/odoo/custom/addons/import_contact_products/hanhoe_import_product_from_url/models/product_template.py", line 82, in action_update_product
page_content = self.fetch_product_data(product.product_url)
File "/odoo/custom/addons/import_contact_products/hanhoe_import_product_from_url/models/product_template.py", line 134, in fetch_product_data
driver = webdriver.Chrome(service=service)
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
super().__init__(
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chromium/webdriver.py", line 55, in __init__
self.service.start()
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/common/service.py", line 108, in start
self.assert_process_still_running()
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/common/service.py", line 121, in assert_process_still_running
raise WebDriverException(f"Service {self._path} unexpectedly exited. Status code was: {return_code}")
selenium.common.exceptions.WebDriverException: Message: Service /odoo/.wdm/drivers/chromedriver/linux64/114.0.5735.90/chromedriver unexpectedly exited. Status code was: -5