You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Selenium C#验证元素aria-disabled属性及等待可点击

Selenium C# 处理带aria-disabled属性的Div按钮

场景示例

Div按钮的两种状态HTML:

  • 不可点击状态:
<div id="MainTab" aria-disabled='true'> 
  • 可点击状态:
<div id="MainTab">

解决方案

1. 判断元素是否存在aria-disabled属性

通过GetAttribute方法获取属性值,返回null或空字符串则表示属性不存在,反之则存在:

IWebElement mainTab = driver.FindElement(By.Id("MainTab"));
string ariaDisabledAttr = mainTab.GetAttribute("aria-disabled");

// 判断属性是否存在
bool hasAriaDisabled = !string.IsNullOrEmpty(ariaDisabledAttr);

// 可进一步判断按钮是否处于禁用状态
bool isButtonDisabled = hasAriaDisabled && ariaDisabledAttr.Equals("true", StringComparison.OrdinalIgnoreCase);

2. 等待元素可点击后执行点击

由于元素始终可见,需自定义等待条件,等待aria-disabled属性不存在或值不为true后再执行点击:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

// 等待元素满足可点击条件
IWebElement targetTab = wait.Until(driver => 
{
    IWebElement elem = driver.FindElement(By.Id("MainTab"));
    string ariaDisabled = elem.GetAttribute("aria-disabled");
    return string.IsNullOrEmpty(ariaDisabled) || !ariaDisabled.Equals("true", StringComparison.OrdinalIgnoreCase);
});

// 执行点击操作
targetTab.Click();

内容的提问来源于stack exchange,提问作者Rejoice2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:40:09