50

Selenium WebDriver を使用していますが、ページにテキストが存在するかどうかを確認するにはどうすればよいですか? たぶん、誰かがそれについて読むことができる有用なリソースを私に勧めてくれます。ありがとう

4

11 に答える 11

49

XPathを使えば、それほど難しくありません。指定されたテキストを含むすべての要素を検索するだけです。

List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]"));
Assert.assertTrue("Text not found!", list.size() > 0);

公式ドキュメントは、このようなタスクをあまりサポートしていませんが、それでも基本的なツールです。

JavaDocの方が優れていますが、役に立つものも役に立たないものもすべて理解するには時間がかかります。

XPath を学ぶには、インターネットに従ってください。仕様も驚くほど読みやすいです。


編集:

または、上記のコードがテキストが表示されるまで待機するようにImplicit Waitを設定したくない場合は、次の方法で何かを行うことができます。

String bodyText = driver.findElement(By.tagName("body")).getText();
Assert.assertTrue("Text not found!", bodyText.contains(text));
于 2012-07-12T15:49:38.397 に答える
21

これは、必要なテキストが Web ページにあるかどうかを確認するのに役立ちます。

driver.getPageSource().contains("Text which you looking for");
于 2012-07-13T05:43:24.693 に答える
13

次のように、ページ全体の本文を取得できます。

bodyText = self.driver.find_element_by_tag_name('body').text

次に、アサートを使用して次のようにチェックします。

self.assertTrue("the text you want to check for" in bodyText)

もちろん、ページ全体を取得する代わりに、特定のDOM要素のテキストを特定して取得し、それを確認することもできます。

于 2012-07-12T20:17:03.747 に答える
0
  boolean Error = driver.getPageSource().contains("Your username or password was incorrect.");
    if (Error == true)
    {
     System.out.print("Login unsuccessful");
    }
    else
    {
     System.out.print("Login successful");
    }
于 2016-12-06T02:58:03.693 に答える