Щелкните элемент, который содержит указанный тег c alt - PullRequest
1 голос
/ 16 июня 2020

Сейчас у меня есть следующий код:

<div class="c-form-field c-form-field--radio SelectStyle col">
<label for="input_radio_style_17" aria-hidden="false" class="">
<span class="c-form-label-content">
<span class="c-image product c-image--square">
<span class="LazyLoad is-visible">
<img src="https://images.example.com/23434234.jpg" alt="Green picture frame" id="I0065001">
</span>
</span>
</span>
</label>
<input name="style" aria-labelledby="styleI0065001" id="input_radio_style_17" type="radio" required="" value="17"></div>

У меня их около 20 на странице, иногда это число меняется, мне нужно сделать l oop над каждым и найти тот который содержит указанный тег c alt, а затем щелкните по нему. В приведенном выше примере мне нужно было бы l oop через кучу и найти тот, который содержит alt="Green picture frame", а затем щелкнуть по нему.

Для начала я бы l oop через каждый элемент с SelectStyle, например Итак.

const imgs = await page.$$eval('.SelectStyle', imgs => imgs.map{
    return (img => img.getAttribute('alt'))
});

Здесь я как бы застрял, как мне вернуть элемент, который соответствует, а затем щелкнуть по нему?

1 Ответ

2 голосов
/ 16 июня 2020

Вы можете решить эту проблему с помощью селектора атрибутов CSS

const imgs = await page.$$('.SelectStyle img[alt="Green picture frame"]');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...