web-dev-qa-db-ja.com

JUnitを使用してSeleniumで要素を含む要素をアサートする方法

特定の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の使用

5
Hugo

使用する:

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()));

文字列から不要なプレフィックスを無視します。

15

AssertEqualsとassertTrueの2つのメソッドを使用できます。使い方はこちら

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

String expectedString = "ExpectedString";

assertTrue(actualString.contains(expectedString));
2
Meenakshi Rana

このコードを使用することもできます:

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