У меня есть массив локаторов, и мне нужно запустить утверждение, чтобы проверить, содержит ли оно определенный текст. Я знаю, что это можно сделать в цикле, однако это кажется утомительным подходом, и я хотел бы его улучшить.
Утомительный подход:
let textIsPresent : boolean = false;
for (let entry of arrayOfLocators) {
if (arrayOfLocators[entry].innerText().toContain("myText")){
textIsPresent = true;
break;
}
}
expect(textIsPresent).toBe(true)
Есть лучший способ сделать это? Например, используя анонимные функции или даже встроенные умные функции? Я не слишком силен в Javascript/Typescript и буду признателен за любую поддержку. Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


const texts = await page.getByRole('link').allInnerTexts();
expect(texts).toContain(true)
Родной подход драматурга к получению внутреннего текста из всех совпадающих кивков.
Ссылка: https://playwright.dev/docs/api/class-locator#locator-all-inner-texts
Вы также можете фильтровать локаторы на основе текста:
await expect(page
.getByRole('listitem'))
.toHaveText(['apple', 'banana', 'orange']);
Вы также можете комбинировать выделение локатора с нужным текстом:
const ele = page.locator(`[data-test-id='myId'] >> text=MyText`);