やりたいこと
Chromeless を使ってセレクトボックスの値を選択したい。 しかしそのためのAPIがない。
実現方法
evaluate
でページに入り込み、対象要素を掴んでインデックスまたは値を指定して選択状態にする。
const { Chromeless } = require("chromeless");
async function run() {
const chromeless = new Chromeless();
await chromeless
.goto("https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select")
.scrollToElement("#Result");
await chromeless.wait(3000);
await chromeless.evaluate((selector, index) => {
select = document.querySelector(selector);
select.selectedIndex = index;
}, '[name="select"]', 0);
await chromeless.wait(3000);
await chromeless.evaluate((selector, value) => {
select = document.querySelector(selector);
select.value = value;
}, '[name="select"]', "value3");
await chromeless.wait(5000);
await chromeless.end();
}
run().catch(console.error.bind(console));