Вот способ собрать эти данные.Сначала попробуйте их в консоли браузера.
[...document.querySelectorAll('a.name-link')]
.filter(element =>
element.innerText.includes('Supreme®/The North Face® Leather Shoulder Bag')
)
Что здесь происходит?
document.querySelectorAll
находит все элементы с этим селектором. .filter
вернет результат, соответствующий запросу. .includes
вернет данные, содержащие данную строку.
Если a.name-link
делаетне работает, тогда ищите a
, если это не работает, то найдите родительский элемент и используйте его.
Как только вы получили элемент в своем браузере, вы можете применить его к своему коду, щелкнуть его и т. Д.
Использование:
Вы можете использовать page.evaluate
для фильтрации инажмите.
const query = "Supreme®/The North Face® Leather Shoulder Bag";
page.evaluate(query => {
const elements = [...document.querySelectorAll('a.name-link')];
// Either use .find or .filter, comment one of these
// find element with find
const targetElement = elements.find(e => e.innerText.includes(query));
// OR, find element with filter
// const targetElement = elements.filter(e => e.innerText.includes(query))[0];
// make sure the element exists, and only then click it
targetElement && targetElement.click();
}, query)