Was ist der beste Ansatz für Timeout mit Selen mit Webdriver

Habe ich ein problem. Meine web-Seite hat eine DropDownList Kontrolle. Sobald die DropDownList Wert ändert (indem Sie einen anderen Wert), wird die Seite aktualisiert und es rendert den Inhalt.

Und dann muss ich das mit Thread.Sleep(2000); vor es geht und FindElement.

Meine Frage: Was ist der beste Weg, zu warten, bis die Seite geladen wird?

Ich habe so viele Fälle von Thread.Sleep(2000) in meinem code, ich bin Anfang zu denken, das ist nicht die beste Herangehensweise an das problem.

Hier ist mein code:

[TestInitialize()]
public void Setup()
{
    if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.IE))
    {
        driver = new InternetExplorerDriver();
    }
    else if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.CHROME))
    {
        //driver = new ChromeDriver();
    }
    else if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.FIREFOX))
    {
        driver = new FirefoxDriver();
    }
}

Und der zweite Teil:

[TestMethod]
public void testVerifyData()
{
    //...................
    //...................
    driver.FindElement(By.XPath("//*[@id='ctl00_NavigationControl1_lnke']")).Click();

    Thread.Sleep(2000);

    //select from the dropdownlist.
    IWebElement catagory = driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_Filter"));
    SelectElement selectCatagory = new SelectElement(catagory);
    selectCatagory.SelectByText("Employee");

    Thread.Sleep(2000);
    //...................
    //...................
}

InformationsquelleAutor Nick Kahn | 2012-08-14

Schreibe einen Kommentar