Вы можете использовать подход semanti c с селекторами XPath . Мы можем создавать выражения сопоставления текста с помощью XPath, используя метод contains()
. Таким образом, можно захватить элементы (например, <button>
) по их внутреннему тексту.
Вы можете проверить это на консоли chrome, запустив $x('//button[contains(text(), "Sign in")]')
.
И это выглядит так: это в кукловоде (вам понадобится page.$x
в случае xpaths для выбора элементов):
const signInBtn = await page.$x('//button[contains(text(), "Sign in")]')
await signInBtn[0].click()
Если формат текста «Войти» может отличаться на разных посещаемых вами сайтах можно параметризовать его для каждой страницы. Например:
const signInContent = 'Sign in'
const signInXpath = `//button[contains(text(), "${signInContent}")]`
const signInBtn = await page.$x(signInXpath)