javascript - 使用 Puppeteer 的 Node.JS Web 抓取失败并出现错误:'input[value type="email"' 不是有效的选择器
问题描述
基本上,我正在尝试登录此表单:
使用这个脚本:
const puppeteer = require('puppeteer')
const screenshot = 'carwow.png'
const scrape = async () => {
const browser = await puppeteer.launch({headless:false});
const page = await browser.newPage();
await page.goto('https://dealers.carwow.co.uk/dealers/sign_in')
await page.type('input type="email"', 'username')
await page.type('input type="password"', 'password')
await page.click('name="commit"')
await page.waitForNavigation()
await page.screenshot({ path: screenshot })
browser.close()
console.log('See screenshot: ' + screenshot)
};
scrape()
但是,它失败并出现以下错误:错误:评估失败:DOMException:无法在“文档”上执行“查询选择器”:“输入[值类型=“电子邮件””不是有效的选择器。
解决方案
我对 puppeteer 不是很熟悉,但它看起来像您尝试使用的 API,例如 page.type 记录在这里:https ://github.com/puppeteer/puppeteer/blob/v10.4.0/docs/api .md#pagetypeselector-text-options 它使用 CSS 选择器作为第一个参数进行测试。
特别是输入上的属性选择器,这是来自 W3 的简短文档: https ://www.w3schools.com/css/css_attribute_selectors.asp
您可能想尝试选择器
'input[type="email"]'
推荐阅读
- c++ - InterviewBit:在提交时给出运行时错误,但在自定义测试用例上给出正确的输出
- string - 拆分字符串并分配给 vb.net 中的类对象
- apache-kafka - 生成大量消息时出错
- typescript - 扩展 TypeScript 接口
- node.js - 快速超时总是在 1 分钟后发生
- jupyter-notebook - 在 Google Colaboratory 中输出 Ipleaflet 小部件
- api - 需要APIFY爬取数据
- google-sheets - Sumifs 在条件评估为假时求和?
- html - Rails HTML Permit Sanitizer 未按预期工作
- java - 无法创建tomcat 9.0 JVM,发生致命错误程序将退出