Je veux juste actualiser une page Web déjà ouverte avec Selenium
.
Il ouvre toujours une nouvelle fenêtre de navigateur.
Qu'est-ce que je fais mal?
from Selenium import webdriver
import urllib
import urllib2
driver = webdriver.Firefox()
driver.refresh()
Je suggérerais de lier la recherche d’élément de pilote à la balise et d’utiliser la commande de rafraîchissement du navigateur.
Sous OSX par exemple
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 'r')
Documentation sur les clés ici: http://Selenium-python.readthedocs.org/en/latest/api.html
Mise à jour: Le code suivant, très similaire à votre, fonctionne bien pour moi.
driver = webdriver.Firefox()
driver.get(response.url) #tested in combination with scrapy
time.sleep(3)
driver.refresh()
Êtes-vous sûr de charger correctement la page Web avec le pilote avant de l'actualiser?
Vous pouvez essayer l’une des méthodes ci-dessous pour la même chose.
Méthode 1:
driver.findElement(By.name("s")).sendKeys(Keys.F5);
Méthode 2:
driver.get(driver.getCurrentUrl());
Méthode 3:
driver.navigate().to(driver.getCurrentUrl());
Méthode 4:
driver.findElement(By.name("s")).sendKeys("\uE035");
Le problème est que vous ouvrez WebDriver, puis que vous essayez d'actualiser lorsque vous n'avez pas spécifié d'URL.
Tout ce que vous avez à faire est d’obtenir votre URL souhaitée avant de rafraîchir:
from Selenium import webdriver
import urllib
import urllib2
driver = webdriver.Firefox()
driver.get("Your desired URL goes here...")
#now you can refresh the page!
driver.refresh()