繁体   English   中英

Java | 硒| 使用Stream从Weblement列表中返回单个Webelement

[英]Java | Selenium | Using Stream to return single Webelement from a list of weblements

我正在尝试通过元素的innerText将一个webelements列表过滤到单个webelement。 在C#中,我将使用linq where子句。 在Java中,我尝试使用流,但无法弄清楚为什么出现不兼容的类型错误(必需:org.openQA.selenium.Webelement。找到:java.util.optional)

public List <WebElement> emp = driver.findElements(By.className("employee"));

public String correctName = driver.findElement(By.id("name")).getText();

public WebElement getName(){
    WebElement correct = emp.stream().filter((element) -> element.getText().contains(correctName)).findFirst();
   return correct;
}

该错误是公平的。 findFirst返回Optional 您必须像这样显式地获取对象。

WebElement correct = emp.stream().filter((element) -> element.getText().contains(correctName)).findFirst().orElse(null);

因此,如果Optional不为空,它将返回该值,否则将返回null 请注意,不建议您在Optional上使用get ,它会在以后被弃用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM