Метод by.partialLinkText() в Protractor предназначен для
поиска элементов <a> (ссылок) по части текста,
который они содержат. Это особенно полезно, когда текст ссылки
динамический или длинный, и невозможно или неудобно использовать полное
совпадение через by.linkText().
element(by.partialLinkText('часть текста'))
ElementFinder, который можно
использовать для дальнейших действий, таких как клик или проверка
текста.const link = element(by.partialLinkText('Подробнее'));
link.click();
В этом примере будет найдено любое <a> на
странице, текст которого содержит слово «Подробнее». Если таких ссылок
несколько, будет выбран первый элемент в DOM.
Чувствительность к регистру Поиск чувствителен к
регистру символов. Например,
by.partialLinkText('Подробнее') и
by.partialLinkText('подробнее') — это разные
запросы.
Совпадение подстроки Метод ищет именно
подстроку. Ссылка с текстом «Узнать подробнее о продукте» будет найдена
запросом 'Подробнее'.
Возврат первого элемента Если на странице
несколько подходящих ссылок, element(by.partialLinkText())
вернет только первый. Для работы с набором элементов
используют element.all(by.partialLinkText()).
const links = element.all(by.partialLinkText('Подробнее'));
links.each(function(linkElement, index) {
linkElement.getText().then(function(text) {
console.log(`Ссылка ${index}: ${text}`);
});
});
element.all(by.partialLinkText()) возвращает
ElementArrayFinder..each(), .getText(),
.count() позволяют перебирать и анализировать все найденные
элементы.const EC = protractor.ExpectedConditions;
const link = element(by.partialLinkText('Подробнее'));
browser.wait(EC.visibilityOf(link), 5000);
link.click();
ExpectedConditions повышает надежность
тестов, гарантируя, что элемент видим и доступен для
клика перед выполнением действий.<a>. Для кнопок
<button> или других элементов метод не подходит..toLowerCase() для сравнения текста после
получения через getText().element.all() с фильтрацией через .filter()
или индекс .get(n).Иногда требуется более точный выбор элемента, комбинируя
by.partialLinkText() с другими методами:
const link = element(by.cssContainingText('a.special-link', 'Подробнее'));
browser.wait() для
надежного поиска.by.partialLinkText() — удобный инструмент для работы с
ссылками в Protractor, обеспечивающий гибкость при выборе элементов по
части текста, особенно на динамически меняющихся страницах.