Как мы можем обрабатывать усеченный ярлык или текст - PullRequest
0 голосов
/ 17 сентября 2018

Чтобы протестировать несколько функций приложения, мне нужно проверить длинную буквенно-цифровую строку. И эта строка / метка / текст (как ни крути здесь) должна обрезаться однажды, заданная пользователем.

Я гуглил и пытался найти - «как проверить усеченную строку» и не нашел полезной информации, поэтому здесь должен быть задан вопрос.

Задача - я могу написать xpath для длинной строки для проверки самого тега / метки / текста / строки, но сложная часть - строка, показывающая несколько точек (например, thisIsLongStrin .....) в конце после усечения.

Я бы хотел убедиться, что эти «точки» отображаются, когда пользователь указывает длинную строку.

Помните, что я не могу видеть эти "точки" в исходной странице

есть мысли или предложения по этому поводу?

Спасибо, ребята, заранее ......... !!!!!

предположим, что строка: "thisIsLongString"

на странице после усечения: "thisIsLongStri..."

вот что работает:

//*[@class='abc']//*[contains(text(),'thisIsLongString')]

вот что работает:

//*[@class='abc']//*[contains(text(),'thisIsLongStri')]

это не работает:

//*[@class='abc']//*[contains(text(),'thisIsLongStrin...')]

(поскольку точки не являются частью страницы)

Я не уверен, каким должен быть подход, чтобы убедиться, что эти точки есть.

1 Ответ

0 голосов
/ 17 сентября 2018

Усеченный текст является результатом применения свойства CSS text-overflow: ellipsis.Чтобы проверить, является ли текст усеченным или нет, вы можете использовать встроенный метод Selenium:

Пример Python

element = driver.find_element_by_xpath("//*[@class='abc']//[text()='thisIsLongString']")
assert element.value_of_css_property("text-overflow") == "ellipsis"

PS Конечно, вы также должны проверить (если выне знаю наверняка) является ли строка достаточно длинной для усечения, так как даже если применяется свойство text-overflow: ellipsis, короткая строка НЕ ​​будет усечена, поэтому она может выглядеть как

assert element.value_of_css_property("text-overflow") == "ellipsis" and len(element.text) > 20 

Это должно проверитьприменяемое свойство и длина строки больше 20 символов ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...