Umstieg auf Linux

Probleme und Lösungen

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.



 - - - By CrazyStat - - -