Rafraîchissant la page web par WebDriver lors de l'attente de condition spécifique
Je suis à la recherche de façon plus élégante pour actualiser la page web en cours de tests (j'utilise Selenium2).
Je viens d'envoyer touche F5 mais je me demande si le pilote a la méthode pour rafraîchir toute la page
Voici mon code
while(driver.findElements(By.xpath("//*[text() = 'READY']")).size() == 0 )
driver.findElement(By.xpath("//body")).sendKeys(Keys.F5);
//element appear after text READY is presented
driver.findElement(By.cssSelector("div.column a")).click();
Est peut-être une meilleure solution pour la recherche d'élément actualisé manuellement la page
Vous devez vous connecter pour publier un commentaire.
En Java ou JavaScript:
Cela devrait actualiser la page.
driver.navigate().refresh()
dans sa demande, l'en-tête dit "no-cache" et, en conséquence, de façon inconditionnelle de la recharge de tous les contenus. Alors qu'en appuyant sur la touche F5 pourrait entraîner une "if-Modified-Since" demande, qui pourrait connaître un "304 not Modified". Vous devez garder cette différence à l'esprit, si vous ne les essais en charge.En Python il y a une méthode pour ce faire:
driver.refresh()
. Il peut ne pas être la même en Java.Sinon, vous pouvez
driver.get("http://foo.bar");
, bien que je pense de la méthode d'actualisation devrait fonctionner parfaitement.driver.get("http://foo.bar")
pourriez tout aussi bien utiliserdriver.get(driver.current_url)
En python
À l'aide intégrée dans la méthode
ou de l'exécution de JavaScript
5 manières différentes pour actualiser une page web en utilisant Selenium Webdriver
Il n'y a aucun codage supplémentaire. J'ai juste utilisé les fonctions existantes dans les différentes façons de le faire fonctionner. Ici, ils sont :
À l'aide de sendKeys.Touches méthode
À l'aide de naviguer.refresh() méthode
À l'aide de naviguer.à() méthode
À l'aide de get() méthode
À l'aide de sendKeys() méthode
Trouvé des approches différentes pour rafraîchir l'application en sélénium :-
De code en direct, veuillez consulter le lien http://www.ufthelp.com/2014/11/Methods-Browser-Refresh-Selenium.html
Ici est légèrement différente version de C#:
Suppléant pour Rafraîchir la Page (F5)
(ou)
Une chose importante à noter est que le pilote.naviguer().refresh() appel semble parfois être asynchrone, il ne prend pas en attendre pour l'actualisation à la fin, c'est juste "coups de pied au large de la rafraîchir" et ne bloque pas la poursuite de l'exécution lorsque le navigateur est le rechargement de la page.
Bien que cela ne semble se produire que dans une minorité de cas, nous avons pensé que c'est mieux pour s'assurer que cela fonctionne à 100% par l'ajout d'un manuel de vérifier si la page a vraiment commencé le rechargement.
Voici le code que j'ai écrit pour que, dans notre page de base de la classe d'objet:
Quelques remarques:
Encore une fois, dans une grande majorité des cas, la boucle do-while s'exécute une seule fois, car le code au-delà de navigation().refresh() n'est pas exécutée jusqu'à ce que le navigateur fait rechargé la page complètement, mais nous avons vu des cas où ça ne prend que quelques secondes pour passer à travers cette boucle parce que la navigation().refresh() n'a pas de bloc jusqu'à ce que le navigateur fini de charger.
Vous pouvez également essayer
Il y a aussi le cas où vous souhaitez actualiser uniquement spécifique iframe sur la page et pas sur toute la page.
Que vous faites est comme suit:
En PHP:
Une autre façon de rafraîchir la page à l'aide de sélénium dans Java.
À l'aide de cette actualiser la page en cours par exemple en cliquant sur la barre d'adresse du navigateur et appuyez sur enter.