如何使用 JUnit 断言元素包含 Selenium 中的文本

How to assert elements contains text in Selenium using JUnit

我知道有一个页面在特定的 xpath 中包含特定的文本。在 firefox 中,我使用以下代码断言文本存在:

assertEquals("specific text", driver.findElement(By.xpath("xpath)).getText());

我在表单中声明第 2 步并确认某个附件已添加到表单中。 但是,当我在 Chrome 中使用相同的代码时,显示的输出不同但确实包含特定文本。我收到以下错误:

org.junit.ComparisonFailure: expected:<[]specific text> but was:<[C:\fakepath\]specific text>

我不想断言某些事情是真的(正是我正在寻找的)我想写这样的东西:

assert**Contains**("specific text", driver.findElement(By.xpath("xpath)).getText());

上面的代码显然不起作用,但我找不到如何完成它。

使用 Eclipse、Selenium WebDriver 和 Java

使用:

String actualString = driver.findElement(By.xpath("xpath")).getText();
assertTrue(actualString.contains("specific text"));

您还可以使用以下方法,使用 assertEquals:

String s = "PREFIXspecific text";
assertEquals("specific text", s.substring(s.length()-"specific text".length()));

忽略字符串中不需要的前缀。

您也可以使用此代码:

String actualString = driver.findElement(By.xpath("xpath")).getText();
Assert.assertTrue(actualString.contains("specific text"));

可以使用两种方法 assertEquals 和 assertTrue。 这是用法

String actualString = driver.findElement(By.xpath("xpath")).getText();

String expectedString = "ExpectedString";

assertTrue(actualString.contains(expectedString));