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

如何使用Selenium读取HTML页面所有图片的alt属性并校验是否填写完整

用Selenium校验页面图片alt属性完整性的实现方法

核心逻辑

  • 等待页面全部加载完成后,抓取页面内所有的<img>标签元素
  • 逐个提取元素的alt属性值
  • 判定规则:alt属性不存在、属性值为空字符串、属性值仅含空白字符,都属于未完整填写的情况;像参考示例中的<img src="/media/images/biren.png" alt="N. Biren" class ="img-fluid" >就属于alt属性填写完整的合格情况。

Python 示例代码

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

# 初始化浏览器(这里用Chrome示例,可替换为其他浏览器驱动)
driver = webdriver.Chrome()
# 打开要测试的页面
driver.get("你的网站测试地址")

# 定位所有img元素
img_elements = driver.find_elements(By.TAG_NAME, "img")
# 存储不合格的图片信息
invalid_imgs = []

for index, img in enumerate(img_elements):
    alt_val = img.get_attribute("alt")
    # 判空逻辑:去掉首尾空白后长度为0就算不合格
    if not alt_val or alt_val.strip() == "":
        # 记录img的src、class等信息方便定位问题
        src_val = img.get_attribute("src")
        class_val = img.get_attribute("class")
        invalid_imgs.append({
            "序号": index+1,
            "src": src_val,
            "class": class_val
        })

# 输出结果
if not invalid_imgs:
    print("页面所有图片的alt属性均已完整填写")
else:
    print(f"发现{len(invalid_imgs)}张图片alt属性未完整填写,明细如下:")
    for item in invalid_imgs:
        print(item)

# 关闭浏览器
driver.quit()

Java 示例代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.ArrayList;
import java.util.List;

public class CheckImgAlt {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        driver.get("你的网站测试地址");

        List<WebElement> imgElements = driver.findElements(By.tagName("img"));
        List<String> invalidImgs = new ArrayList<>();

        for (int i = 0; i < imgElements.size(); i++) {
            WebElement img = imgElements.get(i);
            String altVal = img.getAttribute("alt");
            if (altVal == null || altVal.trim().isEmpty()) {
                String srcVal = img.getAttribute("src");
                String classVal = img.getAttribute("class");
                invalidImgs.add("第" + (i+1) + "张图,src:" + srcVal + ",class:" + classVal);
            }
        }

        if (invalidImgs.isEmpty()) {
            System.out.println("页面所有图片的alt属性均已完整填写");
        } else {
            System.out.println("发现" + invalidImgs.size() + "张图片alt属性未完整填写:");
            for (String info : invalidImgs) {
                System.out.println(info);
            }
        }

        driver.quit();
    }
}

额外说明

  • 如果页面存在懒加载图片,可以先执行页面滚动操作把所有图片加载出来再执行校验,避免漏测
  • 如果你需要区分alt=""(属性存在但为空,属于符合无障碍规范的装饰性图片写法)和完全没有alt属性的违规情况,可以调整判断逻辑,分开统计两类问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:54:03