Java Selenium Webdriver-如何检查属性是否丢失,然后继续

Java Selenium Webdriver-如何检查属性是否丢失,然后继续,java,selenium,webdriver,Java,Selenium,Webdriver,只有当按钮被启用时,元素的“disabled”属性才会出现。对于禁用状态,属性disabled=“disabled”不会显示在HTMl中(属性本身而不是值) 如何检查属性,如果属性不存在,则继续 我试过这个 driver.findElement(By.id("button")).getAttr‌​ibute("disabled") != "disabled" 但当按钮处于禁用状态时,该行失败,因为没有“禁用”属性 HTML 请再试一次 driver.findElement(By.id("bu

只有当按钮被启用时,元素的“disabled”属性才会出现。对于禁用状态,属性disabled=“disabled”不会显示在HTMl中(属性本身而不是值)

如何检查属性,如果属性不存在,则继续

我试过这个

driver.findElement(By.id("button")).getAttr‌​ibute("disabled") != "disabled"
但当按钮处于禁用状态时,该行失败,因为没有“禁用”属性

HTML


请再试一次

driver.findElement(By.id("button")).getAttr‌​ibute("disabled") != null;
试试这个方法,

public boolean existsElement(By locator) {

    try {

        driver.findElement(locator);

    } catch (NoSuchElementException e) {

        return false;
    }

    return true;

}
如果web元素存在,它将返回
true
,如果不存在,它将返回
false
,具体取决于您可以继续的标志值

By lctr = By.xpath("//*[@id='button'][@disabled='disabled']");

boolean flag = existsElement(lctr);

正如您刚才所说的,当启用带有“id=button”的按钮时,就会出现属性disabled。当按钮被禁用时,则属性disabled不存在。那么你到底想达到什么目的呢?请简化您的问题并为其添加更多HTML代码段。请查看以下内容,如果您尝试driver.findElement(By.id(“button”)).getAttr‌​ibute(“残疾”)!=空。当我使用上面的时,我没有得到错误,但是While在没有读取页面详细信息的情况下退出。。因此,Do While循环不起作用。。无论如何,如果你用上面的答案回答,我可以把你的答案设置为接受
By lctr = By.xpath("//*[@id='button'][@disabled='disabled']");

boolean flag = existsElement(lctr);