python selenium-browser mit bestimmter URL öffnen?
Hallo python und programmierfreunde allgemein.
Ich bin neulich auf Python Selenium gestoßen und habe ein paar Probleme bei der Verwendung damit.
Eigentlich will ich erst mal nur den Chrome Browser starten mit einem bestimmten Link.
Dazu habe ich:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.google.de')
stehen.
jetzt schmiert der aber schon bei der zweiten Zeile ab.
Was funktioniert ist:
from selenium import webdriver
driver = webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chrome.exe")
driver.get('http://www.google.de')
Aber, Chrome öffnet dabei immer ein neuen Browser und auch immer nur mit der Startseite und nicht mit mit dem angegebenen link.
Ich würde gerne, wenn der Browser schon offen ist einen neuen Tab öffnen, was aber nicht so wichtig ist, wichtige wäre es, das er den richtigen Link öffnet.
Freue mich über Hilfe und stehe für Fragen offen.
Liebe Grüße
1 Antwort
Aktuell nutzt du Chrome selbst als WebDriver, das funktioniert nicht soweit ich weiß. Der öffnet einfach nur Chrome und ist verwirrt. Der Webdriver ist wie der Name schon sagt nur eine Schnittstelle zwischen Python und Chrome.
Den Webdriver kannst du dir hier runterladen: https://chromedriver.chromium.org/downloads
Er sollte unbedingt mit deiner Version von Chrome übereinstimmen sonst kann es zu Fehlern kommen.
chrome://settings/help
Wenn die letzten beiden Ziffern der Version nicht übereinstimmen ist es halb so wild.
Bin ein bisschen eingerostet aber ich glaube du brauchst ein
driver.switch_to.window(driver.window_handles[0])
bevor du mit get() eine website aufrufst. Damit greifst du auf den ersten Tab zu.
Einen neuen Tab öffnest du mit
driver.execute_script("window.open('about:blank','_blank');")
um den Fokus auf den Tab zu wechseln musst du dann
driver.switch_to.window(driver.window_handles[1])
nutzen. Wie du sehen kannst kannst du so zwischen allen geöffneten Tabs hin und herschalten
Bist du sicher dass der Webdriver die selbe Version hat wie dein Chrome Browser? Das ist wichtig!
ja hab extra drauf geachtet, hab nicht das aktuellste genommen sondern musste eine version darunter nehmen.
Da ging es auf jeden fall nicht
bei der Methode die ich jetzt angewandt habe, mit Chrome Driver Manager install. öfnet der immer ein einen Chrome ohne gespeicherte Login und so. Auch bisschen unpraktisch. Naja, so richtig will das nicht wie ich das gerne hätte
Bei mir ist es so dass ich den Pfad "C:\Programme\ChromeWebdriver\" in meine PATH Umgerbungsvariable eingefügt habe. Dann spart man sich de ganzen Mist mit den Pfaden im Code.
Start -> "Umgebungsvariablen" suchen -> Dort in den Einstellungen auf "Umgebungsvariablen" klicken -> Im oberen Fenster Path suchen und doppelklicken -> Neuer Eintrag mit dem Pfad zu deinem Webdriver-Ordner. (Steck den nicht in Downloads, machs ordentlich)
Jetzt müsste es gehen.
ja der Downloads Ordner war ja nur provisorisch. Wollte erst mal testen ob es geht.
Danke dir für deine mühen ♥
hab ne Methode gefunden die funktioniert.
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://google.de")
ok, hab mir schon geacht das es qutsch ist den Browser direkt anzuvisieren, aber wie muss das dann aussehen.
so?
Eigentlich hätte ich auch gesagt das in den klammern gar nichts rein kommt aber sagt er das kein ausführbares path da ist.
Geht übrigens beides nicht, auch wenn ich chromedrive.exe anvisiere