[英]Puppeteer - How to select an option from dropdown select within an optgroup
I'm trying to select an option from dropdown select which contains an optgroup.我正在尝试从包含 optgroup 的下拉选择中选择一个选项。
<select name="someName">
<optgroup label="A">
<option value="AC">AC</option>
<option value="Abarth">Abarth</option>
<option value="Acura">Acura</option>
<option value="Aixam">Aixam</option>
<option value="Alfa Romeo">Alfa Romeo</option>
<option value="Alpina">Alpina</option>
</optgroup>
<optgroup label="B">
<option value="Bentley">Bentley</option>
<option value="Bugatti">Bugatti</option>
</optgroup>
</select>
How I can select an option from the select above regardless its optgroup?无论其 optgroup,我如何从上面的选择中选择一个选项?
If there's no a optgroup the Standart selecting is working如果没有 optgroup,则 Standart 选择正在工作
await page.select('select[name="someName"]', 'Alfa Romeo');
It works with and without optgroup
element, page.select()
does handle it for you.无论有无
optgroup
元素,它都可以使用, page.select()
会为您处理它。
For showcasing it, here's an example which selects different elements and waits 2 seconds between it.为了展示它,这里有一个示例,它选择不同的元素并在它们之间等待 2 秒。 Watch it in browser!
在浏览器中观看!
var puppeteer = require('puppeteer')
const html = `
<select name="someName">
<optgroup label="A">
<option value="AC">AC</option>
<option value="Abarth">Abarth</option>
<option value="Acura">Acura</option>
<option value="Aixam">Aixam</option>
<option value="Alfa Romeo">Alfa Romeo</option>
<option value="Alpina">Alpina</option>
</optgroup>
<optgroup label="B">
<option value="Bentley">Bentley</option>
<option value="Bugatti">Bugatti</option>
</optgroup>
</select>
`
// utility..
const wait = async (ms) => {
return new Promise(res => {
setTimeout(res, ms)
})
}
const main = async() => {
const browser = await puppeteer.launch({ headless: false })
const page = await browser.newPage()
await page.setContent(html)
await page.select('select[name="someName"]', 'Alfa Romeo');
await wait(2 * 1000)
await page.select('select[name="someName"]', 'Alpina');
await wait(2 * 1000)
await page.select('select[name="someName"]', 'Bugatti');
await wait(2 * 1000)
await page.select('select[name="someName"]', 'Bentley');
console.log('wating.. I am done.')
await wait(5 * 1000)
await browser.close()
}
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.