如何通过文本在 List<WebElement> 中查找 WebElement?
How to find WebElement in a List<WebElement> by text?
我想通过文本在 List<WebElements>
中查找 WebElement。我的方法有这样的参数:List<WebElement> webElements, String text
。对于匹配文本,我更喜欢使用 javaslang 库。所以,我们有:
protected WebElement findElementByText(List<WebElement> webelements, String text) {
}
使用 javaslang 我写了这样简单的匹配:
Match(webElement.getText()).of(
Case(text, webElement),
Case($(), () -> {
throw nw IllegalArgumentException(webElement.getText() + " does not match " + text);
})
);
我不明白如何编写循环以通过文本在 List<WebElemnt>
中查找 WebElement。谢谢大家的帮助。
可能您只需要一个简单的 foreach 循环:
for(WebElement element : webElements){
//here is all your matching magic
}
我建议这样做:
// using javaslang.collection.List
protected WebElement findElementByText(List<WebElement> webElements, String text) {
return webElements
.find(webElement -> Objects.equals(webElement.getText(), text))
.getOrElseThrow(() -> new NoSuchElementException("No WebElement found containing " + text));
}
// using java.util.List
protected WebElement findElementByText(java.util.List<WebElement> webElements, String text) {
return webElements
.stream()
.filter(webElement -> Objects.equals(webElement.getText(), text))
.findFirst()
.orElseThrow(() -> new NoSuchElementException("No WebElement found containing " + text));
}
免责声明:我是 Javaslang 的创造者
我想通过文本在 List<WebElements>
中查找 WebElement。我的方法有这样的参数:List<WebElement> webElements, String text
。对于匹配文本,我更喜欢使用 javaslang 库。所以,我们有:
protected WebElement findElementByText(List<WebElement> webelements, String text) {
}
使用 javaslang 我写了这样简单的匹配:
Match(webElement.getText()).of(
Case(text, webElement),
Case($(), () -> {
throw nw IllegalArgumentException(webElement.getText() + " does not match " + text);
})
);
我不明白如何编写循环以通过文本在 List<WebElemnt>
中查找 WebElement。谢谢大家的帮助。
可能您只需要一个简单的 foreach 循环:
for(WebElement element : webElements){
//here is all your matching magic
}
我建议这样做:
// using javaslang.collection.List
protected WebElement findElementByText(List<WebElement> webElements, String text) {
return webElements
.find(webElement -> Objects.equals(webElement.getText(), text))
.getOrElseThrow(() -> new NoSuchElementException("No WebElement found containing " + text));
}
// using java.util.List
protected WebElement findElementByText(java.util.List<WebElement> webElements, String text) {
return webElements
.stream()
.filter(webElement -> Objects.equals(webElement.getText(), text))
.findFirst()
.orElseThrow(() -> new NoSuchElementException("No WebElement found containing " + text));
}
免责声明:我是 Javaslang 的创造者