显式等待最佳实践以获得最准确的结果

时间:2017-08-07 10:35:12

标签: c# selenium

我已经使用Selenium进行了大量测试。我想让我的测试尽可能强大。我想知道我应该使用ElementToBeClickable还是使用elementExisits或两者。

例如,我应该使用

方法1

public static WebDriverWait webDriverWait;
webDriverWait = new WebDriverWait(excelSession, TimeSpan.FromSeconds(60));

webDriverWait.Until(ExpectedConditions.ElementTo‌​BeClickable(wordSession.FindElementByName("Create"))).Click();

方法2

 By create = By.Name("Create");
                webDriverWait.Until(ExpectedConditions.ElementExists(create)).Click();

方法3

        By create = By.Name("Create");
        webDriverWait.Until(ExpectedConditions.ElementExists(create)).Click();
        webDriverWait.Until(ExpectedConditions.ElementTo‌​BeClickable(excelSession.FindElement(create))).Click();

1 个答案:

答案 0 :(得分:1)

如果稍后点击该元素,您可以使用以下代码

webDriverWait.Until(ExpectedConditions.ElementTo‌BeClickable(wordSession.FindElementByName("Create"))).Click();
webDriverWait.Until(ExpectedConditions.ElementExists(create)).Click();

这在少数情况下不起作用。它检查DOM中的元素是否可用。它不会检查元素在UI中是否可见。

你应该使用 ElementIsVisible 代替,它工作正常。