2016-05-24 9 views
0

システムを返し検証エラー:XPathはfalseを返します

申し訳ありませんが、[email protected]は、ユーザー名または電子メールアドレスとして認識されません。エラーメッセージの

HTMLコード:

<div class="error validate"> 
<h2 class="element-invisible">Error message</h2> 
Sorry, <em class="placeholder">[email protected]</em> is not recognized as a user name or an e-mail address.</div> 

私は、XPathをしようとしています:

@FindBy(xpath="//div[\n" + 
      " @class='errorvalidate' \n" + 
      " and contains(., 'Sorry,')\n" + 
      " and contains(., 'is not recognized as a user name or an e-mail address.')\n" + 
      "]") 

私はシステムを見つけようとしていますアサーションのために動的に検証メッセージを生成したが、XPathの上にありますメッセージ要素を見つけることができません。

+0

あなたは正確にあなたがしたいです何 –

+0

より明確にすることができます見つける?このXapthがうまく動作するエラーメッセージを取得したい場合は、 '' h2 [contains(text()、 ''] '' – Rahul

+0

私は正しいxpathでそのメッセージをアサーションのために探します。私の与えられたxpathは機能しません。 –

答えて

1

以下のように私はあなたのXPathを再フォーマットしており、また、クラス名は、ここでその意義を持って、申し訳ありません

@FindBy(xpath="//div[@class='error validate' and contains(., 'Sorry,') and contains(., 'is not recognized as a user name or an e-mail address.')]") 
+0

システムはこのxpathを使用して要素を見つけることができません:( –

+1

@HelpingHandsこの場合、問題は別の場所にある可能性があります。 xpathtester.com/xpath/45505a718a40542e37fd5ecfeb1d259d) – har07

+0

はい、あなたは正しいです。私はxpathを置いたときに間違いを犯しました。 –

-1

こんにちは試してみてください

// now before getting error message 
// verify that class error validate exits 
// then only get error message 

List<WebElement> doesErrorClassExists = driver.findElements(By.xpath("//*[@class='error validate']")); 
WebElement myErrorClass = driver.findElement(By.xpath("//*[@class='error validate']")); 

if(doesErrorClassExists.size() > 0){ 
System.out.println("Error message is : " + myErrorClass.getText()); 
} 
関連する問題