Frischer Server (ARM64) aufgesetzt: Selenium Script erwartet etwas

  • Hallo, ich habe einen neuen AMR64 Server mit Ubuntu installiert.

    Das zu Testzwecken installierte Script zum Erstellen einer Selenium-Instanz bringt mir eine Fehlermeldung:

    Hier das Script:



    Aufruf des Scripts:

    root@v2202408177986280530:/home/tg/stocks/get_rawdata/tradegate_de# python3 test.py


    Hier die Fehlermeldung:


    TTh /home/tg/stocks/get_rawdata/tradegate_de/chromedriver

    Traceback (most recent call last):

    File "/home/tg/stocks/get_rawdata/tradegate_de/test.py", line 10, in <module>

    service.start()

    File "/usr/lib/python3/dist-packages/selenium/webdriver/common/service.py", line 106, in start

    self.assert_process_still_running()

    File "/usr/lib/python3/dist-packages/selenium/webdriver/common/service.py", line 117, in assert_process_still_running

    return_code = self.process.poll()

    ^^^^^^^^^^^^

    AttributeError: 'Service' object has no attribute 'process'

    root@v2202408177986280530:/home/tg/stocks/get_rawdata/tradegate_de#

    Was ist die Ursache?
    Herzlichen Dank für Eure Hilfe im Voraus!

  • Hallo m_ueberall, vielen Dank fuer die schnelle Antwort!

    Also, ich mache genau das, was HIER beschrieben ist:

    Code
    # Run in terminal, this should start a chromedriver instance
    chromedriver

    Ergebnis:

    root@v2202408177986280530:/home/tg/stocks/get_rawdata/tradegate_de# chromedriver

    Starting ChromeDriver 126.0.6478.182 (5b5d8292ddf182f8b2096fa665b473b6317906d5-refs/branch-heads/6478@{#1776}) on port 9515

    Only local connections are allowed.

    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.

    [1723035140,100][SEVERE]: bind() failed: Die Adresse wird bereits verwendet (98)

    IPv6 port not available. Exiting...

    root@v2202408177986280530:/home/tg/stocks/get_rawdata/tradegate_de#


    Dann starte ich das Script:

    Python
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.python.org")


    Und erhalte:

    root@v2202408177986280530:/home/tg/stocks/get_rawdata/tradegate_de# python3 test.py

    Traceback (most recent call last):

    File "/home/tg/stocks/get_rawdata/tradegate_de/test.py", line 8, in <module>

    driver = webdriver.Chrome()

    ^^^^^^^^^^^^^^^^^^

    File "/usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py", line 80, in __init__

    super().__init__(

    File "/usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py", line 104, in __init__

    super().__init__(

    File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 286, in __init__

    self.start_session(capabilities, browser_profile)

    File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 378, in start_session

    response = self.execute(Command.NEW_SESSION, parameters)

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute

    self.error_handler.check_response(response)

    File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response

    raise exception_class(message, screen, stacktrace)

    selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.

    (session not created: DevToolsActivePort file doesn't exist)

    (The process started from chrome location /usr/bin/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

    Stacktrace:

    #0 0xaaaae746aeb0 <unknown>



    AHA: Der Browser Chrome ist nicht installiert.

    Jetzt muss ich mir etwas ueberlegen, da es fuer meinen AMR-Server keine Google Chrome-Version gibt

  • AHA: Der Browser Chrome ist nicht installiert.

    Jetzt muss ich mir etwas ueberlegen, da es fuer meinen AMR-Server keine Google Chrome-Version gibt

    Und Chromium ist keine Alternative (mehr)?

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

    Edited once, last by m_ueberall ().

  • Chromium. Es gibt arm Builds für Chromium - welche Distribution verwendest du

    ich habe einen neuen VPS Server VPS 1000 ARM64 https://www.netcup.de/vserver/arm-server/
    Das Betriebssystem ist UBUNTU

    Ich bin der alleinige Nutzer des VPS und habe deswegen bisher alle Arbeiten als ROOT durchgefuehrt. Ist das OK so?


    Ziel: Python Script mit Selenium laufen lassen mit Chrome als Browser und Chromedriver

    "Chrome" gibt es nicht stattdessen "Chromium" => ich bekomme die Fehlermeldung:

    Running as root without --no-sandbox is not supported. See https://crbug.com/638180.


    Ich logge mich jetzt als normaler User ein, tippe "chromium" und bekomme:

    """

    chromium

    [148200:148200:0807/164733.624385:ERROR:ozone_platform_x11.cc(244)] Missing X server or $DISPLAY

    [148200:148200:0807/164733.624486:ERROR:env.cc(258)] The platform failed to initialize. Exiting.


    """


    was waere jetzt der Koenigsweg?


    Herzlichen Gruss

  • Ich denke, um dir sinnvoll weiterhelfen zu können würde es helfen zu verstehen, was Du mit dem Server bewerkstelligen willst...


    Um chromium interaktiv aufzurufen, brauchst du - wie in der Fehlermeldung beschrieben - einen X-Server.

    Mir Selenium solltest du den Browser auch "headless" verwenden können, allerdings würde ich so etwas nie als root machen, selbst wenn ich auf meinen Servern der einzige interaktive Nutzer bin.


    Ich überlege selbst seit einiger Zeit, eine Selenium-Instanz auf einem VPS aufzusetzen, um damit UI-Tests durchzuführen.

    Mein Ansatz basiert aber eher auf einer Container-Lösung und ich überlege dafür z.B. auf dem Image linuxserver/chromium aufzusetzen.

    VPS 1000 G11 | VPS 16 Years | VPS 500 G8 Plus | VPS Karneval 2020 | RS X-Mas 2016 | VPS A Ostern 2017 | VPS [piko|nano|mikro] G11s

    Edited once, last by gem ().

    Like 1