Java Webdriver计算没有姓氏的名字

时间:2016-10-19 23:02:19

标签: java selenium selenium-webdriver count

我正在编写一个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());
    }

1 个答案:

答案 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