我想检查一下页面是否有特定的文字。如果我能马上查看一些文本,那就最好。
例如,如果有“客户”,“客户”,“订单”
这是HTML代码。
<div class="findText"><span>Example text. Football.</span></div>
检查完之后,我将使用if条件,如此处所示。这是我尝试这样做的,但这不是最好的选择。除了我不能检查更多的单词,我尝试了||仅
if(driver.getPageSource().contains("google")) {
driver.close();
driver.switchTo().window(winHandleBefore);
}
此外,是否可以抛出大量的单词列表以检查它们是否存在?
答案 0 :(得分:2)
if(stringContainsItemFromList(driver.getPageSource(), new String[] {"google", "otherword"))
{
driver.close();
driver.switchTo().window(winHandleBefore);
}
public static boolean stringContainsItemFromList(String inputStr, String[] items)
{
for(int i =0; i < items.length; i++)
{
if(inputStr.contains(items[i]))
{
return true;
}
}
return false;
}
来自Test if a string contains any of the strings from an array 的stringContainsItemFromList()方法
如果你想获得该元素的文本,你可以使用类似这样的东西而不是driver.getPageSource()......
driver.findElement(By.cssSelector("div.findText > span")).getText();
答案 1 :(得分:2)
import java.util.Arrays;
public class Test {
private static final String[] positiveWords = {"love", "kiss", "happy"};
public static boolean containsPositiveWords(String enteredText, String[] positiveWords) {
return Arrays.stream(positiveWords).parallel().anyMatch(enteredText::contains);
}
public static void main(String[] args) {
String enteredText1 = " Yo I love the world!";
String enteredText2 = "I like to code.";
System.out.println(containsPositiveWords(enteredText1, positiveWords));
System.out.println(containsPositiveWords(enteredText2, positiveWords));
}
}
输出:
true
false
您也可以使用.parallelStream()来使用ArrayList。