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

Selenium(JavaScript)如何检查aria-label参数?

利用Selenium执行JavaScript检查复选框的未选中状态

我需要判断复选框是否处于未选中状态,页面上唯一能区分选中/未选中状态的标识是元素的aria-label属性(未选中时该属性值为CheckBoxOutlineBlankIcon)。请问能不能通过Selenium调用JavaScript来检查这个属性?

对应的页面元素代码:

<svg class="1-MuiSvgIcon-root-778 1-makeStyles-root-875" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img" aria-label="CheckBoxOutlineBlankIcon">
  <path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path>
</svg>

当然可以,你可以通过Selenium的execute_script()方法执行JavaScript代码,获取目标元素的aria-label属性值,进而判断复选框的状态。

具体实现方式

方法1:先定位元素,再通过JS读取属性

适合已经用Selenium定位到目标元素的场景:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

# 定位目标svg元素
target_svg = driver.find_element(By.CSS_SELECTOR, "svg[role='img']")
# 执行JS获取aria-label属性值
aria_label_value = driver.execute_script("return arguments[0].getAttribute('aria-label');", target_svg)
# 判断是否为未选中状态
is_unchecked = aria_label_value == "CheckBoxOutlineBlankIcon"
print(f"复选框未选中:{is_unchecked}")

方法2:直接在JS中完成定位与判断

减少Selenium和浏览器的交互次数,效率更高:

from selenium import webdriver

driver = webdriver.Chrome()

# 直接执行JS完成定位、属性读取和状态判断
is_unchecked = driver.execute_script("""
    // 根据实际情况调整选择器,确保定位到目标复选框的svg元素
    const checkboxElement = document.querySelector("svg[role='img']");
    // 处理元素不存在的情况
    if (!checkboxElement) return false;
    return checkboxElement.getAttribute('aria-label') === 'CheckBoxOutlineBlankIcon';
""")
print(f"复选框未选中:{is_unchecked}")

注意事项

  • 如果页面存在多个同类型的svg元素,需要优化选择器(比如结合父元素的类名、ID等),确保精准定位到目标复选框对应的元素,避免误判。
  • 若使用其他语言的Selenium绑定(如Java、C#),核心逻辑一致:调用执行JS的方法,传入获取并判断aria-label的脚本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:15:19