Junit/Hamcrest -是否有任何指定的文本出现在页面上



我试图使用Junit和Selenium WebDriver来查找拼写错误的单词,从单词库,在一个网站上。我也在使用Hamcrest,它现在包含在Junit中。

@Test
public void filter() throws Exception {
    driver.get("http://www.ExampleWebsite.org/selenium-filter-test/");
    WebElement body = driver.findElement(By.xpath("//*"));
    String content = body.getText();
    assertThat(content, anyOf (
            equalTo("foo"),
            equalTo("Charoit"),
            equalTo("Micha")));
}

问题是我在比较页面上的内容和测试中的三个单词时遇到了问题。我认为指定的字符串"内容"是比较页面上的所有文本作为一个整体字符串。我需要它来查找这些单词是否包含在"content"中。

我的方法是正确的吗?或者你能推荐一些更好的吗?

谢谢。米迦

最简单的方法是使用String.contains()方法。例如:

boolean success 
    = content.contains("foo") 
    || content.contains("Charoit") 
    || content.contains("Micha");
Assert.assertEquals
    ("content contains 'foo', 'Charoit', or 'Micha'", true, success);

我建议您使用guava Splitter类。你可以在这里找到一些例子。

字符串被分割,使用for来检查你想要的每个值

最新更新