Da ich selber viel Probleme hatte, die Selenium Lib in Pyhton nutzbar zu machen, und es mich viele Stunden gekostet, herauszufinden warum es nicht funktioniert, mach ich nen kurzes TuT, um Nachfolgern dieses Problem zu ersparen.
Was wird benötigt ?
-Python
-Silenium Lib
-Chrome Webdriver
-Firefox Webdriver ( auch Geckodriver genannt )
- IDE ( in meinem Fall nehme ich PyCharm )
Python & Co downloaden und installieren
Ladet euch die aktuelle Version von runter.
Ich rate euch, Pyhton nicht als Express Installation zu installieren sondern manuell. ( Man kann so den Zielpfad angeben, was nett aber kein must have ist )
Ich habe das ganze unter C:\ in dem Ordner Python37 gespeichert.
Danach ladet euch als .tar.gz runter.
Dies entpackt Ihr, und speichert es in euren vorher installierten Python Ordner. Bei mir ist es C:\Python37
WICHTIG ! Bennent den Ordner unbedingt in selenium um !
Öffnet den Lib Ordner und kopiert nun den selenium Ordner rein.
Nun werden die Webdriver runter geladen.
Wählt je nach euren System die richtige Datei aus.
Die beiden Files wieder entpacken, und den Inhalt beliebig abspeichern.
( Sollte jedoch nicht irgendwo im nirgendwo liegen )
Ich habe das ganze wieder auf C:\ gespeichert.
Die .exe von Geckodriver kommt in nen Ordner "geckodriver" und für den webdriver von chrome das gleiche nur in nen Ordner "webdriver".
Umgebungsvariablen setzen
Um die Lib, bzw die driver benutzen zu können, müssen diese als Umgebungsvar. hinterlegt werden.
Begebt euch zum folgenden Ort:
Systemsteuerung\Alle Systemsteuerungselemente\System ->
Erweiterte Systemeinstellungen
Danach kommt dies:
Sucht bei den Systemvariablen die Path Var. und danach auf Bearbeiten.
Nun müsst Ihr alle Pade hinzufügen.
Drückt auf -> Neu -> kopiert den Pfad rein.
Folgendes muss dabei sein:
-> Ort wo Python inst. wurde
-> Der im Installationsverzeichnis enthaltene Scripts Ordner in Pyhton
-> Der geckodriver
-> der webdriver
-> und den selenium Ordner im Lib Verzeichnis von Pyhton, was wir vorhin hinzugefügt haben.
Beendet danach alles mit OK.
selenium via pip installieren
Geht in euren Pyhton Ordner ( C:\Pyhton37), und gebt oben wo Ihr den Pfad rauskopieren könnt " cmd " ein !
Bestätigt mit ENTER.
Es öffnet sich nun eine cmd, an der Position im Python Verzeichnis.
Tippt nun pip install -U selenium ein -> enter
Selenium wird nun installiert.
( Jedoch ist die pip installation Fehlerhaft, weswegen wir vorher den selenium Ordner in das Lin Verzeichnis kopieren mussten !.
IDE ( PyCharm ) konfigurieren
Ladet euch die IDE PyCharm runter.
Öffnet sie ( beim ersten Start könnt Ihr das Theme etc einstellen ).
Bennent euer Project ( 1 ), und schaut, dass das Environment als intepreter C:\Python37\python.exe hat !
Falls euch dies nicht angezeigt wird, könnt Ihr auf die drei Punkte ( ... ) neben dem Input-Feld klicken, und euch die python.exe aus euren Installationsverzeichnis von Python holen.
Nun dauert es kurz, bis das Environment geladen wurde.
Wenn alles fertig geladen wurde, geht unter File -> Settings -> Project Interpreter.
Hier muss wie vorhin eben, der Interpreter C:\Python37\python.exe sein (2).
Falls es das nicht ist, ändern bzw. manuell hinzufügen wie ich paar Sätze drüber gerade erklärt habe.
Hier sollte nun das package " selenium " vorhanden sein ! (3)
Ist es vorhanden drückt ok ( 4 )
Manchmal kommt es vor, dass es nicht vorhanden ist, dann musst du es manuell adden.
Das geht über das " + " rechts davon.
Ihr könnt auch andere Libs hinzufügen wie zB Requests oder BeatifulSoup etc. etc.
Selenium und Webdriver/Geckodrive testen
Habt Ihr alles richtig gemacht, kann es ab hier eigentlich keine Probleme mehr geben.
Öffnet ein neues Projekt.
Im neuen Project fügt Ihr ein neues Python Package hinzu.
Im Python Package fügt Ihr nun ein python file hinzu.
( Das __init__ file wird automatisch erzeugt. Wird aber in diesem Zusammenhang fürs testen der Funktionen nicht benötigt.
In euren Pyhton-file schreibt Ihr nun folgendes.
PHP Code:
# import webdriver from selenium lib
from selenium import webdriver
#var decl.
#.Chrome() for the usage of Chrome
#.Firefox() for the usage of Firefox ( Geckodriver)
driver = webdriver.Chrome()
#open an url
driver.get("https://www.elitepvpers.com/forum/")
Ich nehme im Normalfall Chrome, da die Vergangenheit zeigte, dass Firefox mit neuen Updates nur Probleme macht.
Das wars nun eigentlich.
Falls euch Irgendetwas auffällt, was man verbessern könnte, oder ich iwo was zu verpixeln übersehen habe gebt mir bescheid.
Bei Fragen, einfach eine PN an mich oder sonstiges.
Lg
Mad0ck