【发布时间】:2020-10-10 05:05:29
【问题描述】:
我在 html 中有以下元素:
<div class="c-form-field c-form-field--radio SelectStyle col"><label for="input_radio_style_4" 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/is/image/EBFL2/T4144300?wid=88&hei=88&fmt=png-alpha" alt="Teal/White | World Hood" id="T4144300"></span></span></span></label><input name="style" aria-labelledby="styleT4144300" id="input_radio_style_4" type="radio" required="" value="4"></div>
有很多这样的,所以这是我要循环的代码:
const styleElements = await page.$$('.SelectStyle');
然后我通过每个映射找到一个特定的标签:
styleElements.map(async styEl => {
try {
const isThisStyle = await styEl.$eval(`img[alt="${prodOption}"]`, img => img);
if(isThisStyle) {
await styEl.$('input', input => input.click());
await styEl.click();
}
// await styEl.click();
} catch (e) {
console.log(e);
}
当元素不匹配时,循环会出错,这没关系,但是当它是它不点击的元素时。我尝试了两种不同的选择:
await styEl.$('input', input => input.click());
await styEl.click();
知道为什么没有选择元素吗?
【问题讨论】:
标签: puppeteer