如何使用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
相关产品推荐
相关产品推荐

