Comment attendre élément à charge dans selenium webdriver?

Je suis nouveau sur le selenium webdriver et suis en train de tester une application. Dans mon application, je dois tester sur la liaison de Facebook Compte. Chaque fois que je clique sur le lien de la fenêtre pop-up va être affiché à l'endroit où je dois entrer des informations d'identification. Je suis en mesure de relier parfois et parfois, le test échoue. Je sais la raison, car il faut du temps pour charger une fenêtre pop up et commande suivante est exécutée de sorte qu'il n'est pas en mesure de trouver l'élément. J'ai utilisé du Fil.Le sommeil, mais je veux utiliser l'implicite attendre ou explicite d'attente qui est toujours une bonne pratique plutôt que de Fil.Sommeil. Comment utiliser implicite attendre et où utiliser la commande exactement? S'il vous plaît conseils. Merci.

 public void SocialFaceBook()
    {           
        string currentWindow = driver.CurrentWindowHandle;
        PopupWindowFinder finder = new PopupWindowFinder(driver);
        string facebookWindow = finder.Click(driver.FindElement(By.XPath("//div[@id='panelFacebook']/div[2]/div[3]/div[3]/a")));
        //Switch To FaceBook Window
        driver.SwitchTo().Window(facebookWindow);
        System.Threading.Thread.Sleep(3000);

        //Link
        //Email Address
        IWebElement faceBookLinkEmail = driver.FindElement(By.Id("email"));
        faceBookLinkEmail.SendKeys(SocialFaceBookEmail);

        //Password
        IWebElement faceBookLinkPass = driver.FindElement(By.Id("pass"));
        faceBookLinkPass.SendKeys(SocialFaceBookPass);

        //Log In Button
        IWebElement faceBookLinkLogin = driver.FindElement(By.XPath("//input[@id='u_0_1']"));
        faceBookLinkLogin.Click();

        //Switch To Main Window
        driver.SwitchTo().Window(currentWindow);
        System.Threading.Thread.Sleep(3000);

        //Sync            
        IWebElement faceBookSync = driver.FindElement(By.XPath("//div[@id='panelFacebook']/div[2]/div[3]/div[2]/a"));
        faceBookSync.Click();

        //Unlink
        IWebElement faceBookUnLink = driver.FindElement(By.XPath("//div[@id='panelFacebook']/div[2]/div[3]/div[1]/a"));
        faceBookUnLink.Click();
    }

Parfois, il n'est pas en mesure de trouver le journal dans les détails, comme pop-up n'est pas chargé correctement et parfois, il n'est pas en mesure de trouver bouton de synchro facebook compte prend du temps pour lien. S'il vous plaît conseils.

  • Voir la suite pour plus d'informations stackoverflow.com/questions/18063377/... soit implicite ou liquide attente de travail
  • Diverses solutions ont été également fournis ici: stackoverflow.com/questions/6992993/....
  • J'ai été en mesure d'obtenir quelque chose qui a travaillé très bien pour moi, alors que j'étais en attente de quelque chose pour être visible avant de cliquer dessus. Merci de poser cette question!
InformationsquelleAutor user3931772 | 2014-08-19