使用 puppeteer 选择下拉选项

Selecting dropdown option with puppeteer

尝试自动 selection Wunderground/wundermap (https://www.wunderground.com/wundermap) 中的下拉项,但有点挣扎。 selection 项目未命名,每次加载页面时都会获得一个随机 ID(ID 的公共元素,但新编号)。元素是:

<select aria-label="Map Types" class="header-select ng-pristine ng-valid ng-touched" style="width: 200px;" id="mapTypes0.3556425555390934"><option title="Show street map with terrain" value="terrain" selected="selected">Terrain</option><option title="Show Dark Map" value="darkmap">Dark Map</option><option title="Show Light Map" value="lightmap">Light Map</option><option title="Show satellite imagery" value="satellite">Satellite</option><option title="Show imagery with street names" value="hybrid">Hybrid</option></select>

正在尝试 select 使用 puppeteer 的暗图。

我尝试了几个页面评估选项,但它们似乎没有找到元素。有什么建议吗?

这似乎有效:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({ headless: false, defaultViewport: null });

try {
  const [page] = await browser.pages();

  await page.goto('https://www.wunderground.com/wundermap');

  const select = await page.waitForSelector('select[aria-label="Map Types"]');
  await select.select('darkmap');
} catch (err) { console.error(err); }