Selenium Webdriver - 如何检查属性是否丢失然后继续
Selenium Webdriver - how to check if attribute is missing and then proceed
元素的 "disabled" 属性仅在启用按钮时存在。对于禁用状态,属性 disabled="disabled" 未显示在 HTMl 中(属性本身而不是值)
如何检查属性,如果不存在则继续
我试过了
driver.findElement(By.id("button")).getAttribute("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")).getAttribute("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);
元素的 "disabled" 属性仅在启用按钮时存在。对于禁用状态,属性 disabled="disabled" 未显示在 HTMl 中(属性本身而不是值)
如何检查属性,如果不存在则继续
我试过了
driver.findElement(By.id("button")).getAttribute("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")).getAttribute("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);