Селен: проверьте, содержит ли элемент какой-либо текст

С Selenium IDE, как я могу проверить, содержит ли внутренний текст элемента определенную строку? Например:

<p id="fred">abcde</p>
'id=fred' contains "bcd" = true)

Ответы

Ответ 1

Документация Selenium-IDE поможет в этой ситуации.

Команда, которую вы ищете, это assertText, локатор будет id=fred и текст, например *bcd*.

Ответ 2

Это можно сделать с помощью простого шаблона:

verifyText
id="fred"
*bcd*

См. selenium IDE Doc

Ответ 3

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

assertElementPresent
css=p#fred:contains('bcd')

Ответ 4

Можете ли вы использовать jQuery, если вы попробуете что-то вроде

$("p#fred:contains('bcd')").css("text-decoration", "underline");

Ответ 5

Кажется, что регулярные выражения могут работать:

"The simplest character set is a character. The regular expression "the" contains three
character sets: "t," "h" and "e". It will match any line with the string "the" inside it.
This would also match the word "other". "

(С сайта: http://www.grymoire.com/Unix/Regular.html)

Если вы используете визуальную студию, есть функция для оценки строк с регулярными выражениями всех видов (а не только):

using System.Text.RegularExpressions;

Regex.IsMatch("YourInnerText", @"^[a-zA-Z]+$");

Выражение, которое я разместил, будет проверять, содержит ли строка только ТОЛЬКО буквы.

Ваше регулярное выражение будет тогда по моей ссылке быть "bcd" или некоторой строкой, которую вы создаете во время выполнения. Или:

Regex.IsMatch("YourInnerText", @"bcd");

(Что-то в этом роде)

Надеюсь, что это помогло.

Ответ 6

Вы можете использовать команду assertTextPresent или verifyText