Проблема с работой метода Condition.matchText

Проблема: на финальном этапе теста мне нужно проверить наличие текста на странице. Но внутри текста есть одно слово, которое может меняться и следовательно тест будет не стабильный. Я нашел метод Condition.matchText в котором можно прокинуть регулярку.

Но она странно работает.
Вот в таком написании

alertBadCountryText.shouldHave(matchText("Страна, в которой выпущена карта – [а-яА-Я]{6}, а страна, которую вы выбрали для отправки перевода – Кипр."))

метод не отрабатывает. Воспринимает регулярку как часть строки.
Я попробовал вот так написать :

alertBadCountryText.shouldHave(matchText("Страна, в которой выпущена карта – [а-яА-Я]{6}."))

Убрать все после регулярки и все отрабатывает отлично. Вроде в описании к методы был пример, что можно регулярку хоть в каком месте использовать. Но что то не отрабатывает. Я пробовал и более общий вариант [а-яА-Я, не работает.
Подскажите пожалуйста в чем может быть проблема ?

Текст ошибки : Element should have match text "Страна, в которой выпущена карта – [а-яА-Я], а страна, которую вы выбрали для отправки перевода – Кипр.

java, Selenide, Chrome

Напишите полный текст ошибки. Чуть ниже должно быть “Actual value”.

Регулярку вы используете правильно. Думаю, она тупо не совпадает с текстом.

да прошу прощения. Actual value: text="Страна, в которой выпущена карта – Россия, а страна, которую вы выбрали для отправки перевода – Кипр.

как будто в ожидаемом точки на конце не хватает

это просто копи/паст подвел)) в коде есть.

может у вас там переносы строк какие-то, символы пробельные не обычные, а для трифорсов

скопируйте текст и вставьте в нотпад++, там поиграйтесь с отображением символов и кодировкой, может поможет

1 лайк

Да верно, был перенос строки которую я не заметил. Скопировал полностью текст с переносом и тест прошел.

Но если меняю слово Россия на регулярку [а-яА-Я] не проходит. А с [а-яА-Я]{3, 13} проходит. Но мне этого хватит. Спасибо всем за ответы.