Hallo zusammen,
ich habe bereits versucht mit Python Selenium Erweiterungen in neue Chrome Browser zu installieren, ebenfalls mit Playwright. Der Teil klappt auch gut.
Nur habe ich ein kleines Problem:
Ich habe schon ein wenig lange probiert und recherchiert, wie man nun diese Erweiterungen /Addons nach der Installation bedienen kann. Es ist mehr so eine Übungsaufgabe für mich: Z.B. würde ich gerne die VPN Erweiterung gerne anschalten bzw. Länder mit verschiedenen IPs auswählen können.
Es scheint nicht ganz unmöglich, aber nicht auf konventionellen Wege . Ich weiß nicht ganz was ich dafür aber tun muss, da ich manche Anleitungen nicht verstehe und nicht weiß, ob Sie wirklich meinen Anwendungsfall beinhalten. Ich kann keine Selector Tools verwenden um wie bei Websiten etwas Bestimmtes anzuklicken und direkt zu wissen, was man tun muss, um darauf zu klicken. Diese Funktionieren für die die kleinen Popups oben rechts im Fenster einfach nicht. Man bekommt keine Rückmeldung auch nicht über XPath oder irgendwelche ids oder css Attribute.
Ist da vielleicht jemand besser im Thema als ich und da kann besser etwas herausfinden? Ich fände solche Funktionen schon sehr nützlich.
Mein experimenteller Anfängercode ist folgender:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
# Pfad zur chromedriver.exe-Datei
chrome_driver_path = r"Anonymisierter Pfad"
# Pfade zu den Erweiterungen
planet_vpn_extension_path = r"Anonymisierter Pfad\Desktop\VS Code\Erweiterung PlanetVPN\Kostenloser-VPN-Proxy-und-Werbeblocker-Planet-VPN-Chrome-Web-Store"
selectorgadget_extension_path = r"Anonymisierter Pfad\Desktop\VS Code\SelectorGadget-Chrome-Web-Store"
# Chrome-Optionen konfigurieren
options = Options()
options.add_argument("--load-extension=" + planet_vpn_extension_path + "," + selectorgadget_extension_path)
options.add_argument("--start-maximized") # Maximiert das Fenster
# WebDriver initialisieren
service = Service(executable_path=chrome_driver_path)
driver = webdriver.Chrome(service=service, options=options)
# Warte auf die Initialisierung der Erweiterungen
time.sleep(10) # Erhöhe die Wartezeit, wenn beide Erweiterungen geladen werden müssen
# Beispielhafter Code zum Interagieren mit der Erweiterung:
time.sleep(2)
# Wechsle zum Pop-up-Fenster der Erweiterung (falls nötig)
# driver.switch_to.window(driver.window_handles[0])
# Finde und klicke auf den VPN-Button (CSS-Selektor anpassen)
# vpn_button = driver.find_element(By.CSS_SELECTOR, "CSS_SELECTOR_DES_VPN_BUTTONS")
# vpn_button.click()
# Weitere Aktionen durchführen, falls nötig
# Browser offen lassen
input("Drücke Enter, um den Browser zu schließen...")
# WebDriver beenden (falls gewünscht)
# driver.quit()
Viele Grüße und danke schonmal!
Viele Grüße,
Nemesess
Selenium - Testen mit Browser Erweiterungen
Ich habe übrigens die Dateien lokal als entpackte ZIPs in Ordnern gespeichert und nicht als CRX Datei. Es soll ja auch Wege über eine Unique ID von CRX Dateien geben, aber ich weiß nicht, wo ich diese herausfinden soll.