2017-06-06 4 views
0

Ich versuche, eine Liste von String-Koordinaten durchzublättern, um zu einer bestimmten Google Earth-Seite zu navigieren. Ich möchte ein neues Fenster geöffnet und das vorherige für jede Iteration geschlossen und muss auch in das neue Fenster wechseln. Ich bin mir nicht sicher, wie Selenium mit jeder Iteration ein neues Fenster öffnen kann. Kann mir jemand erklären, wie das geht?Öffnen eines neuen Fensters für jede Iteration, Selenium

Gerade jetzt, wenn ich diese Koordinaten durchlaufe, wird die zweite Iteration auf eine andere Seite gelenkt und bringt mich in eine Art Endlosschleife, scheint aber gut zu funktionieren, wenn das Fenster anfänglich geöffnet ist, weshalb ich mehrere öffnen möchte Fenster.

Danke für Ihre Hilfe.

`` `

width, height = get_screen_res() 
driver = webdriver.Chrome() 
driver.set_window_size(width, height) 
driver.maximize_window() 
driver.switch_to_window(driver.window_handles[0]) 


for i, c in enumerate(coordinates): 
    filepath = '../images/Jafay/' + str(i) + '.png' 
    lat, lon = c.split(',') 
    url = 'http://earth.google.com/web/@{},{},1615.83371101a,196.41606213d,35y,0h,0t,0r'.format(lat, lon) 
    driver.get(url) 
    time.sleep(30) 
    driver.save_screenshot(filepath) 
    driver.close() 

Antwort

0

Das Problem ist in der letzten Zeile. Verwenden Sie nicht driver.close() innerhalb der Schleife, verwenden Sie es, wenn Sie das Skript beenden. Sie brauchen auch nicht die Bildschirmgröße einzustellen, wenn maximize_window() verwenden und müssen nicht switch_to_window(), wie Sie nur ein Fenster

driver = webdriver.Chrome() 
driver.maximize_window() 

for i, c in enumerate(coordinates): 
    filepath = '../images/Jafay/' + str(i) + '.png' 
    lat, lon = c.split(',') 
    url = 'http://earth.google.com/web/@{},{},1615.83371101a,196.41606213d,35y,0h,0t,0r'.format(lat, lon) 
    driver.get(url) 
    time.sleep(30) 
    driver.save_screenshot(filepath) 

driver.close() 
+0

Danke in diesem Punkt haben zu verwenden, die funktioniert, wollte ich es wechseln, um sicherzustellen, Es war auf dem richtigen Bildschirm vor dem Erstellen eines Screenshots. Einfache Fehler sind am schlimmsten. – eeskonivich

Verwandte Themen