Selenium; gespeicherte Zugangsdaten automatisch senden und einloggen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
3cosystem
User
Beiträge: 22
Registriert: Mittwoch 22. April 2020, 14:48

Hallo Leute,

zurzeit logge ich mich auf eine Website mittels Script ein.
Verwende ich normal Firefox, macht der das automatisch, da ich die Nutzerdaten gespeichert habe.
Das wuerde ich auch gerne mit Selenium nutzen,
da ich das um 0000 zum Serverreset mache und ich dadurch einen großen Geschwindigkeitsboost
habe und das auch eine Fehlerquelle darstellt. ('Bad Gateway' setzt dann frueher ein, welches ich dann abwarten muss)
Ich habe gelesen, dass man das mit dem Verweis auf den anderen Profilordner macht mit:

Code: Alles auswählen

from selenium.webdriver.firefox.webdriver import FirefoxProfile

firefox_profile = webdriver.FirefoxProfile("C:/Users/.../AppData/Roaming/Mozilla/Firefox/Profiles/abcde1134.default-release-1")
driver = webdriver.Firefox(firefox_profile=firefox_profile)
Das Profil ist als Standard gesetzt, wenn ich Firefox normal oeffne.
Da sich dann beim Scriptstart im Browser auch ein Addon mitlaedt, weiß ich, dass er das Profil aufruft.
(Interessanterweise verschwindet das Addon-Logo nach kurzer Zeit aus der Leiste.)
Leider komme ich beim Aufruf der Seite trotzdem auf die Loginseite, wo ich meine Nutzderdaten eingeben muss.
Wie kann ich das loesen, dass Selenium sich direkt mit einloggt? Muss ich vielleicht spezielle Packets oder Cookies
mitsenden, die ich vorher ausgelesen habe?

Ich bedanke mich recht herzlich im Voraus
Liebe grueße und einen schoenen Sonntag noch
3cosystem


Edit: Auf welches Firefox greift Selenium eigentlich zurueck?
Wenn ich mit 'executable_path=' den Pfad zu einem anderen Firefox aerndere kommt ne Fehlermeldung.
Wenn ich "Firefox Developer" deinstalliere, kann ich Selenium/webdriver.script gar nicht mehr starten,
obwohl ich noch 2x mal Firefox aufm Rechner habe...(Unable to find matching capabilities)
Bin irgendwie total blind, wie Selenium (oder Geckodriver?) da vorgeht...
3cosystem
User
Beiträge: 22
Registriert: Mittwoch 22. April 2020, 14:48

Also ich habe jetzt noch ein paar Dinge ausprobiert.
mit der cookie_get()-function bekomme ich leere Cookies raus.
Damit kann ich es also nicht machen.
Vermutlich hat die Seite zu viel Javascript...
Vielleicht kann er sich auch deswegen mit dem gegebenen Profil nicht
automatisch einloggen.
Ich kann mich aber mit der request-Umgebung einloggen. Ich versuche jetzt mal
das dort funktionierende Cookie mit an den driver zu setzen.
Wenn das nicht klapp schau ich mir mal diese requestium-Umgebung an.
Dann kann ich beides verknuepfen und nach dem Einloggen mit request wieder auf
den webdriver springen, um mit xpath den javascriptbutton zu finden....

LG
Antworten