dnbl99
Goto Top

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!

Content-ID: 82634758420

Url: https://administrator.de/contentid/82634758420

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

7907292512
7907292512 11.10.2023, aktualisiert am 12.10.2023 um 13:23:51 Uhr
Goto Top
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
#!/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.