javascript - 按文本选择选项,而不是使用 puppeteer 按值选择
问题描述
目标网址:http ://www.supremenewyork.com/shop/jackets/uaxjeqvro/fm9kozqa6
目标元素:#s
问题:无法从下拉列表中选择值。我已经尝试了多种方法,我可以在 Stack Overflow 上找到的唯一相关问题是,[如何从下拉选择中选择一个选项,但这些答案都没有描述如何通过元素的文本而不是值来选择选项选项。
解决方案
这应该可以工作,在https://try-puppeteer.appspot.com/上使用 1.7.0 版进行测试
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();
推荐阅读
- javascript - 如何使用javascript在不同的文本字段中显示多个输入值
- c# - CefSharp - 如何从开发者工具的源选项卡中实现另存为
- c# - 我将如何使我从其他页面入队的对象出列
- python - 如何将旧数据框中的数据附加到新的空白数据框中
- python - 如何使用 Python 处理 Spark Dataframe 中的 NullType?
- java - Spring自定义访问被拒绝处理程序不起作用
- c++ - 如何检测函数是否存在?
- java - gradle 从所有 jar 中排除外部资源文件夹
- database - 在 Matlab 中处理数千个文本文件的最快/有效方法是什么?
- c# - 'System.Void' 类型不能用作类型参数!发生错误