puppeteer - 使用 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 选择暗图。
我尝试了几个页面评估选项,但他们似乎没有找到元素。有什么建议么?
解决方案
这似乎有效:
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); }
推荐阅读
- swing - 使用 JFXPanel 时如何解决对齐问题?
- slick-2.0 - 等待 CockroachDB 命令完成
- sql - SQL 嵌套和/或语句
- c# - 在线程中调用多个方法的最佳方法
- coldfusion - 指定 JDBC 数据库驱动程序最大线程数
- python-3.x - 如何动态知道 pySpark DF 对于给定列是否具有空值/空值?
- postgresql - 在 Okteto Cloud 上创建 PersistentVolume
- php - Apple Pay - authorize.net 仅在直播时返回错误 153,沙盒有效
- python - How to get all dimension values in MetricDataResults in CloudWatch
- c - 内存泄漏 C -Valgrind