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

Selenium Webdriver - how to check if attribute is missing and then proceed

元素的 "disabled" 属性仅在启用按钮时存在。对于禁用状态,属性 disabled="disabled" 未显示在 HTMl 中(属性本身而不是值)

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

我试过了

driver.findElement(By.id("button")).getAttr‌​ibute("disabled") != "disabled"

但是当按钮处于禁用状态时,此行失败,因为没有 "disabled" 属性

HTML

<td>
<input id="ReportViewer1_ctl06_ctl00_Next_ctl01_ctl00" type="image" 
style="border-style: none; height: 16px; width: 16px; border-width: 0px;     
cursor: default;" alt="Next Page" src="/xxxx Reserved.
ReportViewerWebControl.axd?OpType=Resource&Version=
0.0.30319.1&Name=Microsoft.Reporting.WebForms.Icons.NextPageDisabled.gif" 
title="Next Page" disabled="disabled"
name="ReportViewer1$ctl06$ctl00$Next$ctl01$ctl00">

请尝试

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;

}

如果网络元素存在,它将 return true,如果不存在,它将 return false,具体取决于标志值,您可以继续。

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

boolean flag = existsElement(lctr);