我已经进入Selenium WebDriver,仍然找到最令人困惑的例子。
我需要能够读取一个字符串(成功)运行一个条件,询问是否存在特定文本。
为了这篇文章。
String oneoff = "Jeff is old"
我需要匹配Jeff,看下面的代码,只要Jeff存在于字符串中,我想返回true。如果杰夫不存在,那么我会检查哦说50-75其他名字。但是,字符串可能包含其名称和无法控制的其他文本。所以我必须进行部分匹配。
问题1.我是否已经搞砸了,并且必须以我所见过的那种疯狂格式构建每个正则表达式,或者我错过了一些明显的东西?
问题2.有人为了我的理智,请告诉我与杰夫匹配的正确方法,以及在杰夫这个名字之前和之后发短信的可能性。
谢谢!
String oneoff = driver.findElement(By.id("id_one_off_byline"))
.getAttribute("value");
System.out.println("One Off is:" + oneoff);
if (oneoff.matches("Jeff")) {
System.out.println("It is Jeff");
} else {
System.out.println("it is not jeff");
}
这只是代码的功能部分,
答案 0 :(得分:4)
因为Jeff存在于字符串中,我想返回true
然后你可能应该用
进行测试if (oneoff.contains("Jeff"))
由于matches
使用正则表达式作为参数,因此if (oneoff.matches("Jeff"))
仅在oneoff = "Jeff"
时才会返回true。
答案 1 :(得分:1)
您不需要对您提供的代码使用match()。而是使用oneoff.equals(“String”)进行字符串匹配。 Match()更适用于正则表达式。如果要返回true,也可以使用oneoff.contains(“String”),即使该字符串仅作为目标字符串的子集存在。
答案 2 :(得分:1)
if (oneoff.contains("Jeff")) {
System.out.println("It is Jeff");
} else if (!oneoff.contains("Jeff")) {
System.out.println("it is not jeff");
}
我认为你应该改进你的代码,因为java可能没有识别其他字符串,如果包含在其他" jeff"也许" JEef"或者" JEEF"甚至可能" Jeef"
我希望它有效,我曾经发现像你一样的错误,我试着这样克服它。