我已经使用Selenium进行了大量测试。我想让我的测试尽可能强大。我想知道我应该使用ElementToBeClickable还是使用elementExisits或两者。
例如,我应该使用
方法1
public static WebDriverWait webDriverWait;
webDriverWait = new WebDriverWait(excelSession, TimeSpan.FromSeconds(60));
webDriverWait.Until(ExpectedConditions.ElementToBeClickable(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.ElementToBeClickable(excelSession.FindElement(create))).Click();
答案 0 :(得分:1)
如果稍后点击该元素,您可以使用以下代码
webDriverWait.Until(ExpectedConditions.ElementToBeClickable(wordSession.FindElementByName("Create"))).Click();
webDriverWait.Until(ExpectedConditions.ElementExists(create)).Click();
这在少数情况下不起作用。它检查DOM中的元素是否可用。它不会检查元素在UI中是否可见。
你应该使用 ElementIsVisible 代替,它工作正常。