Select 文本选项,而不是 puppeteer 的值

Select option by text, not by value with puppeteer

目标URL:http://www.supremenewyork.com/shop/jackets/uaxjeqvro/fm9kozqa6

目标元素:#s

问题:无法 select 下拉列表中的值。我已经尝试了很多事情,我在 Stack Overflow 上唯一能找到的相关问题是,[ 但是这些答案中的 none 描述了如何通过元素的文本 select 选项而不是期权的价值。

这应该可以,在 1.7.0 版本上测试过 https://try-puppeteer.appspot.com/

const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('http://www.supremenewyork.com/shop/jackets/uaxjeqvro/fm9kozqa6');

let $elemHandler = await page.$('#s');
let properties = await $elemHandler.getProperties();
for (const property of properties.values()) {
  const element = property.asElement();
  if (element){
    let hText = await element.getProperty("text");
    let text = await hText.jsonValue();
    if(text==="Large"){
       let hValue = await element.getProperty("value");
       let value = await hValue.jsonValue();
      await page.select("#s",value); // or use 58730
      console.log(`Selected ${text} which is value ${value}.`);
    }
  }
}
await browser.close();