Das Browserfenster wird geschlossen, wenn ein anderes geöffnet wird, wenn Python Selenium Chromedriver verwendet wird [Duplikat]
Ich versuche, das Surfen im Internet mit Python (2.7) / Selenium / Chromedriver zu automatisieren, habe aber ein besonderes Verhalten, wenn mehr als eine Site (Browserfenster) nacheinander geöffnet wird. Wenn ein neues Browserfenster geöffnet wird, wird ein zuvor geöffnetes aus irgendeinem Grund geschlossen. Ist das ein Problem mit der Speicherbereinigung? Gibt es eine Möglichkeit, alle Browserfenster zum Öffnen zu zwingen? Hier ist ein Beispiel:
import sys
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://google.com")
driver.get("http://amazon.com")
driver.get("http://ebay.com")
Antworten
Das Problem hierbei ist, dass Sie mehrere URLs auf derselben Registerkarte treffen. Es ist wie das Klicken auf einen neuen Link innerhalb einer Seite, die die neue Seite in derselben Registerkarte öffnet. Sie müssen lediglich eine separate Registerkarte für jede URL öffnen.
driver = webdriver.Chrome()
driver.get("http://google.com")
#Open 2nd Tab
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.get("http://amazon.com")
#Open 3rd Tab
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.get("http://ebay.com")
Oder wenn Sie öffnen möchten separaten Fenster können Sie 3 Instanzen von Chrom - Treiber erstellen und offene separate URLs in allen von ihnen.
driver1 = webdriver.Chrome()
driver2 = webdriver.Chrome()
driver3= webdriver.Chrome()
driver1.get("http://google.com")
driver2.get("http://amazon.com")
driver3.get("http://ebay.com")
Hinweis :
Ich glaube, Ihre nächste Frage wird sein, wie Sie mit verschiedenen Registerkarten arbeiten. Folgen Sie dem folgenden Link: Wie wechsle ich zu einem neuen Fenster in Selenium for Python?