Automatisierung Makro aufzeichnen linux
Hallo zusammen,
Kennt jemand eine Software, mit der ich ein Makro aufzeichnen kann? Ich möchte die Fenstereinstellungen einer webbasierten Software anpassen und einen automatischen Refresh über ein Skript ausführen. Derzeit muss der Benutzer diese Schritte manuell durchführen:
1. Browser öffnen
2. Sich im Webinterface der Software anmelden
3. Fenstereinstellungen anpassen (da die Software keine Option zum Speichern der Fensterpositionen bietet)
4. Der Auto-Refresh ist in der Software implementiert, erfordert jedoch gelegentlich einen manuellen Refresh.
Ich würde gerne diese Schritte automatisieren und es wäre hilfreich, ein "Makro" oder Ähnliches aufzuzeichnen und es dann nach dem Start über Cron auszuführen. Ich kenne die Software AUTOIT für Windows, mit der dies möglich sein sollte. Falls es unter Linux keine vergleichbare Lösung gibt, erwäge ich die Installation eines Low-Budget-Windows-PCs und die Verwendung von AUTOIT.
Die Umgebung, in der ich das umsetzen möchte, ist:
- Samsung TV
- Raspberry PI mit Raspbian
- Browser: Chromium
Vielen Dank im Voraus für eure Unterstützung!
Kennt jemand eine Software, mit der ich ein Makro aufzeichnen kann? Ich möchte die Fenstereinstellungen einer webbasierten Software anpassen und einen automatischen Refresh über ein Skript ausführen. Derzeit muss der Benutzer diese Schritte manuell durchführen:
1. Browser öffnen
2. Sich im Webinterface der Software anmelden
3. Fenstereinstellungen anpassen (da die Software keine Option zum Speichern der Fensterpositionen bietet)
4. Der Auto-Refresh ist in der Software implementiert, erfordert jedoch gelegentlich einen manuellen Refresh.
Ich würde gerne diese Schritte automatisieren und es wäre hilfreich, ein "Makro" oder Ähnliches aufzuzeichnen und es dann nach dem Start über Cron auszuführen. Ich kenne die Software AUTOIT für Windows, mit der dies möglich sein sollte. Falls es unter Linux keine vergleichbare Lösung gibt, erwäge ich die Installation eines Low-Budget-Windows-PCs und die Verwendung von AUTOIT.
Die Umgebung, in der ich das umsetzen möchte, ist:
- Samsung TV
- Raspberry PI mit Raspbian
- Browser: Chromium
Vielen Dank im Voraus für eure Unterstützung!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82634758420
Url: https://administrator.de/contentid/82634758420
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
1 Kommentar
Ich mache das meist mit Plain-Shell-Skripts und ChromeDriver
Hier mal ein basic sample für das Administrator-Login inkl. Angabe der Fenster Größe
Das ganze geht natürlich auch mit Python oder Java. Selenium gibt es für viele Platformen.
Gruß sid.
Hier mal ein basic sample für das Administrator-Login inkl. Angabe der Fenster Größe
#!/bin/bash
# check for needed commands
for c in curl wget jq chromium ;do if ! command -v $c >/dev/null 2>&1 ;then echo Missing command "'$c'";exit 1;fi;done
# download chromedriver if it does not exist in current dir
if [[ ! -f ./chromedriver ]];then
# get chromium version string
chromeversion=$(chromium --version | cut -d " " -f 2)
# download driver
wget -q https://chromedriver.storage.googleapis.com/$chromeversion/chromedriver_linux64.zip
# unzip driver
unzip -qq chromedriver_linux64.zip chromedriver
rm chromedriver_linux64.zip
fi
# start driver daemon
./chromedriver &
sleep 2
# start browser and get session id
SID=$(curl -s -XPOST -d '{"desiredCapabilities":{"browserName":"chrome","chromeOptions":{"args":["window-size=1000,800"]}}}' http://localhost:9515/session | jq -r '.sessionId')
BASEURL=http://localhost:9515/session/$SID
# navigate to page
curl -s -d '{"url":"https://administrator.de/login/"}' $BASEURL/url
# get username field
fieldUsername=$(curl -s -d '{"using":"id","value":"global-login-field"}' $BASEURL/element | jq -r '.value.ELEMENT')
# get password field
fieldPassword=$(curl -s -d '{"using":"id","value":"global-login-pass"}' $BASEURL/element | jq -r '.value.ELEMENT')
# get login button
btnLogin=$(curl -s -d '{"using":"id","value":"login-button"}' $BASEURL/element | jq -r '.value.ELEMENT')
# enter username in field
curl -s -d '{"value":["DeinUsername"]}' $BASEURL/element/$fieldUsername/value
# enter password
curl -s -d '{"value":["Geheim"]}' $BASEURL/element/$fieldPassword/value
# click login button
curl -s -XPOST $BASEURL/element/$btnLogin/click >/dev/null
sleep 3
# load another page
curl -s -d '{"url":"https://administrator.de/ticker"}' $BASEURL/url >/dev/null
sleep 3
# logout from site
curl -s -d '{"url":"https://administrator.de/members/logout/"}' $BASEURL/url >/dev/null
# close session
curl -s -XDELETE $BASEURL >/dev/null
# kill chromedriver daemon
killall chromedriver
Das ganze geht natürlich auch mit Python oder Java. Selenium gibt es für viele Platformen.
Gruß sid.