Internet Browser fernsteuern
Problem: Sie möchten den Chrome Browser automatisieren, um sich zum Beispiel automatisch bei einer Webseite einzuloggen.
Lösung: Dazu muss das Python Paket selenium installiert werden.
sudo apt install python3-selenium
Mit folgendem Script loggen Sie sich auf einer einfachen Seite ein, die Felder und URL müssen angepasst werden:
#!/usr/bin/env python3
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time, subprocess, datetime
import socket
def check_internet(host="8.8.8.8", port=53, timeout=3):
try:
socket.setdefaulttimeout(timeout)
socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port))
return True
except socket.error as ex:
print(ex)
return False
def main():
now = datetime.datetime.now()
print("Autologin")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
retrycounter=0
while not check_internet():
if retrycounter>10:
print("No internet connection, aborting")
exit(1)
else:
print("No internet connection, waiting 5s")
time.sleep(5)
retrycounter+=1
# login url
url = "https://www.example.com/"
options = webdriver.ChromeOptions()
service = Service(executable_path="/usr/bin/chromedriver")
options = webdriver.ChromeOptions()
browser = webdriver.Chrome(service=service, options=options)
browser.get(url)
time.sleep(1)
# The element names will likely be different for your application,
# therefore change accordingly
user = browser.find_element(By.NAME,"credentials_username")
password = browser.find_element(By.NAME,"credentials_passname")
# Clear the input fields
user.clear()
password.clear()
user.send_keys("username")
password.send_keys("password")
time.sleep(1)
browser.find_element(By.CLASS_NAME,"login_button").click()
# Keep the page loaded for 8 seconds
time.sleep(8)
# Log out
try:
browser.find_element(By.CLASS_NAME,"logout_button").click()
time.sleep(2)
except:
print("Could not find logout button.")
time.sleep(2)
browser.delete_all_cookies()
browser.close()
print("Autologin finished")
if __name__ == '__main__':
main()
In diesem Script müssen Sie Benutzername und Passwort austauschen und sowie die Angaben in find_element ändern, um die richtigen Felder und die Login/Logout Knöpfe zu identifizieren.