【发布时间】:2013-12-20 09:08:33
【问题描述】:
我必须编写一个测试来验证某个元素在某些情况下是否不可点击。我正在使用 Selenium Webdriver Java 库。
我知道如何利用WebDriverWait 和ExpectedConditions 类来做相反的事情。
new WebDriverWait(element, TIMEOUT).until(ExpectedConditions
.elementToBeClickable(By.cssSelector(LOCATOR)));
但我似乎找不到检查相反内容的方法。
我浏览了WebElement 的文档并设法将问题分解为两个更简单的情况。
-
元素被禁用 - 在这种情况下,我可以使用
WebElement#isEnabled并将其包装在传递给WebDriverWait#until的谓词中。new WebDriverWait(driver, TIMEOUT).until(new Predicate<WebDriver>(){ public boolean apply(WebDriver driver) { return !getElement().isEnabled(); } }); 在某些情况下,元素在单击时不会执行任何操作。我也想考虑到这一点。问题是,该元素本身并没有被禁用。它可以被点击,但没有注册事件(通常有一个,但在我的例子中,它被 JavaScript 删除了)。
第二种情况仍然困扰着我。有什么办法可以等待此类事件被取消注册?
【问题讨论】:
标签: java selenium-webdriver clickable