首页 > 解决方案 > 使用 puppeteer 选择下拉选项

问题描述

尝试自动选择 Wunderground/wundermap ( https://www.wunderground.com/wundermap ) 中的下拉项目并有点挣扎。选择项没有命名,并且在每次页面加载时都会获得一个随机 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>

尝试使用 puppeteer 选择暗图。

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

标签: 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); }

推荐阅读