首页 > 解决方案 > 安静地忽略屏幕阅读器文本

问题描述

宁静正在返回屏幕阅读器文本以及屏幕中的可见文本。如何获取用户可见的文本?

public static Target TransactionTypeOption = Target.the("Transaction Type options").located(By.xpath("//ipb-dropdown[@class='type-dropdown ']//li//div"));      
List<String> options = Text.of(TransactionTypeOption).viewedBy(actor).asList();

在此处输入图像描述

我已将 bootstrap Sr-only 类用于屏幕阅读器文本。所以,我只想阅读第一个内容是“所有交易”,但宁静正在返回我“所有交易空白,当前选择”

标签: seleniumtestingautomated-testsserenity-bddcucumber-serenity

解决方案


您正在使用的 XPath 正在选择div,它还会拾取 下的一些文本div,在本例中就是, current selection这样。我之前在 Selenium 中看到过这个问题,唯一的解决方案是处理代码中的额外文本。

public static Target TransactionTypeOption = Target.the("Transaction Type options").located(By.xpath("//ipb-dropdown[@class='type-dropdown ']//li//div"));

string textToFilterOut = driver.findElement(By.xpath("//span[@class='sr-only']")).getText();      
List<String> options = Text.of(TransactionTypeOption).replace(textToFilterOut, "").viewedBy(actor).asList();

推荐阅读