Selenium: проверить, содержит ли элемент какой-либо текст - PullRequest
17 голосов
/ 29 марта 2012

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

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

Ответы [ 6 ]

23 голосов
/ 29 марта 2012

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

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

4 голосов
/ 29 марта 2012

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

assertElementPresent
css=p#fred:contains('bcd')
4 голосов
/ 29 марта 2012

Это можно сделать с помощью простого подстановочного знака:

verifyText
id="fred"
*bcd*

См. Селен IDE Doc

1 голос
/ 29 марта 2012

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

"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)

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

using System.Text.RegularExpressions;

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

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

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

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

(что-то подобное в любом случае)

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

1 голос
/ 29 марта 2012

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

$("p#fred:contains('bcd')").css("text-decoration", "underline");
0 голосов
/ 29 марта 2012

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

...