Skript Chrome URL-Aufruf automatisieren
Verfasst: Montag 10. Januar 2022, 17:46
Hallo,
ich bin neu hier im Forum, da ich mit einem Skript ein wenig ratlos bin.
Folgenden Fall möchte ich mit einem Python Skript auf meinem Raspberry Pi4 lösen:
1) Löschen einer XML Datei
2) Download einer neuen XML Datei durch Browseraufruf einer URL:
3) Dies beiden Skripte sollen täglich automatisch ausgeführt werden:
---
---
1)Das Löschen der Datei habe ich mit folgendem Skript gelöst;
import os
os.remove("/home/share/public/file.xml")
Das tägliche Ausführen über einen Eintrag in crontab klappt auch super.
2) Ich habe selenium sowie den Chrome Webdriver installiert und folgendes Skript geschrieben:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome()
driver.get("http://...")
Der Aufruf des Skriptes in einer VNC Session auf dem PI klappt super. Es öffnet sich Chromium und der Link wird. aufgerufen.
Wenn ich das Skript automatisch über crontab starten will passiert nichts und ich bekomme folgende Message in /var/mail
From: root@raspberrypi (Cron Daemon)
To: pi@raspberrypi
Subject: Cron <pi@pi> /usr/bin/python3 /home/pi/Downloads/scripts/loadepg.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/pi>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=pi>
Message-Id: <E1n6uwx-0000MO-Ie@pi>
Date: Mon, 10 Jan 2022 14:43:03 +0100
Traceback (most recent call last):
File "/home/pi/Downloads/scripts/loadxml.py", line 13, in <module>
driver = webdriver.Chrome()
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
service_log_path, service, keep_alive)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chromium/webdriver.py", line 99, in __init__
options=options)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 268, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 359, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x000000a4a618 <unknown>
#1 0x0000007b09f4 <unknown>
#2 0x0000007d2814 <unknown>
#3 0x0000007cec04 <unknown>
#4 0x00000080528c <unknown>
#5 0x0000007ffa14 <unknown>
#6 0x0000007d8478 <unknown>
#7 0x0000007d93a4 <unknown>
#8 0x000000a77944 <unknown>
#9 0x000000a8990c <unknown>
#10 0x000000a89550 <unknown>
#11 0x000000a8ad40 <unknown>
#12 0x000000a78944 <unknown>
#13 0x000000a8afec <unknown>
#14 0x000000a6f3ac <unknown>
#15 0x000000aa26e8 <unknown>
#16 0x000000aa2858 <unknown>
#17 0x000000abcf4c <unknown>
#18 0x0000b6f27494 start_thread
#19 0x000000000000 <unknown>
Kann mir vielleicht jemand weiterhelfen? Wie kann ich diesen Chrome-Aufruf automatisieren. Mein PI läuft 24x7 und somit ist auch die grafische Umgebung dauerhaft aktiv.
Gruß
Chris
ich bin neu hier im Forum, da ich mit einem Skript ein wenig ratlos bin.
Folgenden Fall möchte ich mit einem Python Skript auf meinem Raspberry Pi4 lösen:
1) Löschen einer XML Datei
2) Download einer neuen XML Datei durch Browseraufruf einer URL:
3) Dies beiden Skripte sollen täglich automatisch ausgeführt werden:
---
---
1)Das Löschen der Datei habe ich mit folgendem Skript gelöst;
import os
os.remove("/home/share/public/file.xml")
Das tägliche Ausführen über einen Eintrag in crontab klappt auch super.
2) Ich habe selenium sowie den Chrome Webdriver installiert und folgendes Skript geschrieben:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome()
driver.get("http://...")
Der Aufruf des Skriptes in einer VNC Session auf dem PI klappt super. Es öffnet sich Chromium und der Link wird. aufgerufen.
Wenn ich das Skript automatisch über crontab starten will passiert nichts und ich bekomme folgende Message in /var/mail
From: root@raspberrypi (Cron Daemon)
To: pi@raspberrypi
Subject: Cron <pi@pi> /usr/bin/python3 /home/pi/Downloads/scripts/loadepg.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/pi>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=pi>
Message-Id: <E1n6uwx-0000MO-Ie@pi>
Date: Mon, 10 Jan 2022 14:43:03 +0100
Traceback (most recent call last):
File "/home/pi/Downloads/scripts/loadxml.py", line 13, in <module>
driver = webdriver.Chrome()
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
service_log_path, service, keep_alive)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chromium/webdriver.py", line 99, in __init__
options=options)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 268, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 359, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x000000a4a618 <unknown>
#1 0x0000007b09f4 <unknown>
#2 0x0000007d2814 <unknown>
#3 0x0000007cec04 <unknown>
#4 0x00000080528c <unknown>
#5 0x0000007ffa14 <unknown>
#6 0x0000007d8478 <unknown>
#7 0x0000007d93a4 <unknown>
#8 0x000000a77944 <unknown>
#9 0x000000a8990c <unknown>
#10 0x000000a89550 <unknown>
#11 0x000000a8ad40 <unknown>
#12 0x000000a78944 <unknown>
#13 0x000000a8afec <unknown>
#14 0x000000a6f3ac <unknown>
#15 0x000000aa26e8 <unknown>
#16 0x000000aa2858 <unknown>
#17 0x000000abcf4c <unknown>
#18 0x0000b6f27494 start_thread
#19 0x000000000000 <unknown>
Kann mir vielleicht jemand weiterhelfen? Wie kann ich diesen Chrome-Aufruf automatisieren. Mein PI läuft 24x7 und somit ist auch die grafische Umgebung dauerhaft aktiv.
Gruß
Chris