2017-06-06 3 views
0

文字列座標のリストをループして、特定のGoogle Earthページに移動しようとしています。私は、新しいウィンドウを開き、前のウィンドウを各繰り返しごとに閉じて、新しいウィンドウに切り替える必要があります。私はどのようにセレンを各反復で新しいウィンドウを開くようにするかわからない、誰かがこれを行う方法を説明することができますか?すべての反復で新しいウィンドウを開く、Selenium

今、私はこれらの座標をループすると、2番目の反復は別のページに送られ、無限ループのようなものになりますが、ウィンドウが最初に開いたときにうまくいくように見えます。窓。

ありがとうございました。

`` `

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() 

答えて

0

問題は、最後の行です。ループ内にdriver.close()を使用しないでください。スクリプトを終了するときに使用してください。また

maximize_window()を使用した場合、画面のサイズを設定する必要はありませんし、この時点でウィンドウを1つだけ持っているよう switch_to_window()を使用する必要はありません
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

私はそれを確認するために切り替えたかった、働いていたことをありがとうそれはスクリーンショットを撮る前に、適切な画面上にあった。簡単なミスは最悪です。 – eeskonivich

関連する問題