2012-05-22 3 views
6

У меня есть HTML-страницы с следующим содержанием:Селен WebDriver - как проверить несколько строк текста

<center> 
      This is Login page. 
      <br> 
      Please click below link to Login. 
      <br> 
      <a href="xxx">Login</a> 
    </center> 

Как я могу проверить все статический текст выше, используя одну команду WebDriver?

Я попробовал это, но ни один из них не работает :(

driver.findElement(By.xpath("//*[contains(.,'This is Login page.<br>Please click below link to Login')]")) 
driver.findElement(By.xpath("//*[contains(.,'This is Login page.\nPlease click below link to Login')]")) 

Кто знает, как это сделать

ответ

6

Вы можете сделать:

webDriver.findElement(By.id("<ID of center tag>")).getText().contains("This is Login page.Please click below link to Login.Login"); 

Вы можете использовать локатор ваш выбор вместо By.id.

В основном getText() любого WebElement возвращает текстовое содержимое узел, лишенный всех HTML-тегов и комментариев.

+0

Thanks Ashwin. Просто узнал, что getText() очень полезен :) –

1

Это скорее ограничение XPath, чем Selenium.

Я не понимаю, почему вы используете глобальный селектор XPath там, лучше селектор XPath будет:

By.XPath("//center"); 

Если это единственный «центр» тег на странице, или даже:

By.XPath («// center [содержит (текст(),« Это страница входа »)

Символы/r и/n будут сохранены, если вы сделаете это с помощью кода вместо слепого поиска это в XPath.

+0

Я использую глобальный селектор XPath, так как на самом деле это коды в моей общей библиотеке, чтобы проверить текст. Возможно, у меня должен быть другой метод в моей общей библиотеке, чтобы проверить текст на основе определенного тега. Но вернемся к вопросу, имея в виду, что я должен сделать что-то вроде этого: –

+0

Да, я бы попытался найти его без ввода символов/r и/n (новые строки и каретки), пойти на что-то более простое (как то, что я сделал выше) и проверить текст после того, как вы получили элемент. После этого будет намного проще проверить структуру его в коде. В противном случае вы можете добавить ID в центральный тег и использовать ответ Ашвина. – Arran

+0

ok отмечено. Я попробую его и спасибо огромное :) –

-1

Как найти тексты, если тексты имеют пространство между ними.

 <br> 
     <br/> 
     Please click below link to Login. 
     <br> 
     <a href="xxx">Login</a> 
</center> 
+0

Нашел решение на другой странице. Если у кого-то такая же проблема, как и я. используйте эту ссылку: https://groups.google.com/forum/#!topic/selenium-users/brPeac2QTvs и решение: Assert.assertEquals («Письмо пустое. \ nПожалуйста, введите адрес электронной почты!», драйвер. . findElement (By.xpath (XXXXXXXX)) Gettext()); – Bibek

Смежные вопросы