2017-01-18 9 views
1

я следующие HTML фрагмент:Что такое xpath для следующего текста (сообщение об ошибке) в selenium webdriver?

<div class="alert alert-danger"> 
    <button class="close" type="button" data-dismiss="alert" aria-hidden="true">×</button> 
    User name or password are incorrect 
    </div> 

Что будет XPath, чтобы найти «имя пользователя или пароль неверны» текст?

ответ

1
 
String WrongUsernameMessage = driver.findElement(By.xpath("//div[@class='alert alert-danger']")).getText(); 
    String[] WUmessage= WrongUsernameMessage.split("\n"); 
    //System.out.println(message[1]); 
    if (WUmessage[1].equals("User name or password are incorrect")) 
     { 
    System.out.println("Message is CORRECT."); 
     }else{ 
    System.out.println("Message is INCORRECT."); 
     } 

Это работает.

1

Использование После xpath получить сообщение -

String message = driver.findElement(By.xpath(".//div[@class='alert alert-danger']")).getText(); 

или Вы можете попробовать использовать cssSelector а

String message = driver.findElement(By.cssSelector("div.alert.alert-danger")).getText(); 

возвращает ваше сообщение с текстом кнопки x. Используйте следующий код, чтобы получить только сообщение -

String message = driver.findElement(By.xpath(".//div[@class='alert alert-danger']")).getText(); 
    String finalMessage = message.replace("x", "").trim(); 

Отредактировано

Thread.sleep(2000); 
String message = driver.findElement(By.xpath(".//div[@class='alert alert-danger']")).getText(); 
String finalMessage = message.replace("x", "").trim();  
if(finalMessage.equals("User name or password are incorrect")) 
{ 
    System.out.println("Message is CORRECT."); 
} 
else 
{ 
    System.out.println("Message is INCORRECT."); 
} 
+0

Спасибо за ответ Narendra: this ie давая ошибку: в документе XML есть ошибка (1, 33) .также все еще давая значение x –

+0

, с какой ошибкой вы столкнулись? – NarendraR

+0

'String WrongUsernameMessage = driver.findElement (By.xpath (" .// div [@ class = 'login-content']/div/div ")). GetText(); \t если (WrongUsernameMessage.equals ("Имя пользователя или пароль неверны")) \t { \t \t System.out.println ("Сообщение ПРАВИЛЬНО."); \t} else { \t \t System.out.println («Сообщение НЕПРАВИЛЬНО»); } ' \t это мой код. и его результат: сообщение НЕПРАВИЛЬНО. в то время как он должен отображать сообщение, ПРАВИЛЬНО. –

0

Вы можете использовать этот XPATH:

String message = driver.findElement(By.xpath(".//div[@class='login-content']/div/div")).getText(); 
+0

Спасибо за ответ, но он не работает. –

+0

'String WrongUsernameMessage = driver.findElement (By.xpath (" .// div [@ class = 'login-content']/div/div ")). GetText(); \t если (WrongUsernameMessage.equals ("Имя пользователя или пароль неверны")) \t { \t \t System.out.println ("Сообщение ПРАВИЛЬНО."); \t} else { \t \t System.out.println («Сообщение НЕПРАВИЛЬНО»); } ' \t это мой код. и его результат: сообщение НЕПРАВИЛЬНО. в то время как он должен отображать сообщение, ПРАВИЛЬНО. –