随机等待不在硒中工作

时间:2016-03-30 13:11:18

标签: c# selenium testing teamcity browserstack

我们在Selenium中编写了一些用TeamCity上的Browserstack运行的UI测试。 这些测试随机失败,因为(在我看来)wait.Untils无法正常工作,因为错误总是'无法点击元素...因为元素会收到点击。正如你在代码中看到的那样,我会应用多次等待,然后它会随机忽略它们。

driver.FindElement(By.XPath("//input[@value='Login']")).Click();

        //wait for the page to be loaded, check the title and open a booking
        wait.Until(ExpectedConditions.ElementExists(By.LinkText("To be completed")));
        wait.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("To be completed")));
        Assert.AreEqual("Booking Overview", driver.Title);
        wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
        wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//button")));
        wait.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("To be completed")));
        driver.FindElement(By.LinkText("To be completed")).Click();

        //wait for step 2 to load
        wait.Until(ExpectedConditions.ElementExists(By.XPath("//div[@id='WiredWizardsteps']/div[2]/div/form/div/div[2]/label/span")));
        wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@id='WiredWizardsteps']/div[2]/div/form/div/div[2]/label/span")));
        //verify we are at step 2
        var step2 = driver.FindElement(By.XPath("//ul[contains(@class, 'steps')]/li[contains(@class, 'active')]"));
        Assert.AreEqual("2", step2.GetAttribute("data-target"));
        //click the radiobutton with a movetoelement
        var option = driver.FindElement(By.XPath("//div[@id='WiredWizardsteps']/div[2]/div/form/div/div[2]/label/span"));
        new Actions(driver).MoveToElement(option).Click().Perform();
        //retry programmatically
        driver.FindElement(By.XPath("//div[@id='WiredWizardsteps']/div[2]/div/form/div/div[2]/label/span")).Click();
        //wait for the textbox to appear
        wait.Until(ExpectedConditions.ElementToBeClickable(By.Name("commodityNonOperative")));

任何人都有建议或有同样的问题请告诉我。

0 个答案:

没有答案