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
相关产品推荐
相关产品推荐

