2015-02-11 14 views
6

Desidero solo aggiornare una pagina Web già aperta con Selenium.Come aggiornare una pagina Web già aperta

Apre sempre una nuova finestra del browser.

Cosa sto facendo male?

from selenium import webdriver 
import urllib 
import urllib2 

driver = webdriver.Firefox() 
driver.refresh() 
+4

Avete provato a usare 'driver.navigate(). Refresh()'? – HavelTheGreat

+0

Il codice che mostri non riproduce il problema che stai segnalando. La riga 'webdriver.Frirefox()' avvierà un nuovo browser. Ma 'driver.refresh()' non fa nulla con il codice che mostri. Se aggiungi una chiamata 'driver.get()' per caricare un buon URL, la pagina si aggiorna come dovrebbe. – Louis

risposta

3

È possibile provare uno dei seguenti metodi per lo stesso.

Metodo 1:

driver.findElement(By.name("s")).sendKeys(Keys.F5); 

Metodo 2:

driver.get(driver.getCurrentUrl()); 

method3:

driver.navigate().to(driver.getCurrentUrl()); 

Method4:

driver.findElement(By.name("s")).sendKeys("\uE035"); 
+3

Questo non appartiene a python, che è la lingua taggata –

+0

Questo non è python – bntzio

5

Suggerirei di legare la ricerca di elementi del driver al corpo del tag e utilizzare il comando di aggiornamento del browser.

in OSX, per esempio

driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 'r') 

Documentazione sui tasti qui: http://selenium-python.readthedocs.org/en/latest/api.html

Update: Il codice seguente, molto simile al vostro uno, funziona bene per me.

driver = webdriver.Firefox() 
    driver.get(response.url) #tested in combination with scrapy 
    time.sleep(3) 
    driver.refresh() 

Sei sicuro di caricare correttamente la pagina web con il driver prima di aggiornare esso?

Problemi correlati