我正在编写一个selenium webdriver java test并尝试计算出现后没有姓氏的名字数量。
例如,任何时候" John Smith"出现时,它不会被计算在内,但如果它是一个像约翰一样的句子,约翰就是这样做的,因为史密斯没有出现,它会增加计数。
不幸的是,在这一点上,无论我做什么,尝试从WebElement读取/计数都返回0,但我知道无论哪种方式我都不会排除姓氏条目。欢迎任何建议!
当前代码:
//get string from WebElement text
`String john = JohnSmith.getText();
int johnCount =0;
while (john.contains("john")){
johnCount++;
//this line starts from the substring after the first john
john = john.substring(john.indexOf("john") + "john".length());
}
答案 0 :(得分:0)
我的第一个想法是做一些简单的事情,比如用“”替换“John Smith”然后计算“John”的实例。计算实例的One simple way是使用“John”拆分字符串并计算它们。
一个简单的例子:
String s = "This is John Smith. John is walking in the park. John likes coffee. His name is John Smith.";
s = s.replaceAll("John Smith", "");
int count = s.split("John").length - 1;
System.out.println(count); // 2
编辑: ......或者更好的是,把它变成一个可以轻松重复使用的功能......
public int countFirstNames(String firstName, String lastName, String searchText)
{
searchText = searchText.replace(firstName + " " + lastName, "");
return searchText.split("John").length - 1;
}
并将其称为
String s = "This is John Smith. John is walking in the park. John likes coffee. His name is John Smith.";
System.out.println(countFirstNames("John", "Smith", s)); // 2