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

Selenium中过滤后校验元素是否为空文本、统计数量及判定测试结果的方法

Selenium No Priority过滤器校验实现方案

核心实现逻辑

  • 初始化统计变量:空文本元素计数、指定文本匹配计数、非空文本异常标记
  • 遍历元素时对获取的文本做trim处理,规避空白字符导致的误判
  • 检测到非空白文本时立即标记异常,同步统计指定文本匹配结果
  • 遍历完成后若存在异常则触发断言,标记测试用例失败

完整代码示例

// 初始化统计变量
int emptyTextCount = 0;
// 可根据需求修改要匹配的指定文本
String targetText = "高";
int targetTextCount = 0;
boolean hasInvalidPriority = false;

for (int i = 1; i <= noPriorityPageTotal; i++) {
    List<WebElement> allListofNoPriority = driver.findElements(By.xpath("(//*[@class='sortable-row'])[" + i + "]//td[3]"));
    for (WebElement element : allListofNoPriority) {
        // 去除前后空白字符,避免空格、换行符导致的误判
        String text = element.getText().trim();
        logger.info("The text is "+ text);
        
        if (text.isEmpty()) {
            emptyTextCount++;
        } else {
            hasInvalidPriority = true;
            logger.error("检测到非法优先级内容:{},元素路径:{}", text, element);
            // 匹配指定文本时计数
            if (text.equals(targetText)) {
                targetTextCount++;
            }
        }
    }
}

// 校验结果,标记测试用例状态
if (hasInvalidPriority) {
    // 可替换为当前测试框架对应的断言失败方法,如JUnit、TestNG的Assert.fail
    Assert.fail(String.format("No Priority过滤器校验失败,空文本元素数:%d,指定文本匹配数:%d", emptyTextCount, targetTextCount));
}
logger.info("校验通过,空文本元素总数:{},指定文本「{}」匹配总数:{}", emptyTextCount, targetText, targetTextCount);

适配说明

  • 若页面文本通过非innerText属性渲染,可将element.getText()替换为element.getAttribute("textContent")或对应属性获取方法,避免文本获取不全
  • 若需要模糊匹配指定文本,可将text.equals(targetText)替换为text.contains(targetText)
  • 断言方法需和当前使用的测试框架适配,避免编译报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:54:01