Básicamente, estoy tratando de iniciar sesión en este formulario:
usando este script:
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()Sin embargo, falla con un error como el siguiente: Error: la evaluación falló: DOMException: no se pudo ejecutar 'querySelector' en 'Documento': 'input[value type="email"' no es un selector válido.
No estoy muy familiarizado con titiritero, pero parece que la API que está tratando de usar, por ejemplo, page.type está documentada aquí: https://github.com/puppeteer/puppeteer/blob/v10.4.0/docs/api .md#pagetypeselector-text-options y utiliza selectores de CSS para el primer argumento contra el que se prueba.
Específicamente un selector de atributo en una entrada, aquí hay un breve documento de W3 sobre él: https://www.w3schools.com/css/css_attribute_selectors.asp
Es posible que desee probar el selector
'input[type="email"]'@Diego tiene razón. Puede reescribir sus rutas de selector de la siguiente manera:
'input[type="email"]' y 'input[type="password"]' y "*[name='commit']"