Selenium WebDriver - Comment mettre en Page d'attente de Chargement à l'aide de C#

Je suis en utilisant le Sélénium 2.20 WebDriver pour créer et gérer un navigateur firefox avec le C#. À visiter une page, j'utilise le code suivant, le réglage du pilote délais d'attente avant de visiter l'URL:

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); //Set implicit wait timeouts to 5 secs
driver.Manage().Timeouts().SetScriptTimeout(new TimeSpan(0, 0, 0, 5));  //Set script timeouts to 5 secs
driver.Navigate().GoToUrl(myUrl);   //Goto page url

Le problème est que, parfois, les pages prennent une éternité à se charger, et il semble que le délai d'attente par défaut pour une page se charge en utilisant selenium WebDriver est de 30 secondes, ce qui est trop long. Et je ne crois pas que les délais d'attente je suis en train d'appliquer le chargement d'une page à l'aide de la GoToUrl() la méthode.

Donc je suis à essayer de comprendre comment définir un délai d'attente pour qu'une page se charge, cependant, je ne peux pas trouver une propriété ou une méthode qui fonctionne réellement. La valeur par défaut de 30 secondes, délai d'attente semble également s'appliquer lorsque je clique sur un élément.

Est-il un moyen de définir la page d'attente de chargement pour une valeur spécifique de sorte que lorsque j'appelle la GoToUrl() la méthode qu'il aura plus qu'à attendre mon heure spécifiée avant de continuer?

  • Êtes-vous sûr GoToUrl() attend que la page se charge? Mon expérience est qu'il ne l'est pas. Mais c'est juste un sentiment, pas un fait.
  • oui, je suis sûr à 100% que l'appel GoToUrl() bloque l'exécution jusqu'à ce que la page est complètement terminé le chargement, et j'ai mesuré un délai d'attente par défaut est de 30 secondes pour l'appel de cette méthode, après 30 secondes d'exécution est de continuer, et je vais essayer de réduire ce délai d'attente par défaut est de 30 secondes en quelque sorte.
  • j'ai posté la même question: stackoverflow.com/questions/11958701/...
  • Il ne bloque jusqu'à ce que la page se charge aussi loin que la onReady événement est envoyé par le navigateur. Si theres post js et ajax ... que la page "chargé" des connaissances ne signifie rien.
InformationsquelleAutor KabanaSoft | 2012-05-15