Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

380
Visualizações
node.js titiritero "el documento no está definido"

Estoy intentando hacer clic en un botón usando un código sin una identificación o clase, pero mi terminal siempre responde con:

 document.getElementsByTagName("Accept Cookies"); ^ ReferenceError: document is not defined

Este es mi código:

 const puppeteer = require('puppeteer'); const product_url = "https://www.nike.com/launch" async function givePage() { const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); return page; } async function acceptCookies(page) { await page.goto(product_url); const btn = await page.waitForSelector('#cookie-settings-layout > div > div > div > div:nth-child(3) > div.ncss-col-md-6.ncss-col-sm-12.mb5-sm > button') await btn.click() } async function notifyMe(page) { await page.goto(product_url); document.querySelector("button[type=\"submit\"]").click("Notify Me"); } async function checkout() { var page = await givePage(); await acceptCookies(page); await notifyMe(page); } checkout();

¿Qué hice mal y cómo puedo solucionarlo?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Ya tienes un ejemplo en tu código sobre cómo acceder a los elementos. En lugar de document.querySelector , use page.waitForSelector como lo hizo en la línea 12.

 document.querySelector('button[type="submit"]').click()

debiera ser

 (await page.waitForSelector('button[type="submit"]')).click()
about 4 years ago · Juan Pablo Isaza Relatório

0

No hay una variable integrada en NodeJS llamada document , ya que no se ejecuta en el navegador.

Si desea acceder al document , en Puppeteer hay una función page.evaluate() donde puede acceder a la variable del document (así como a todo lo demás dentro del JS del lado del cliente):

 // ... await page.evaluate(() => { document.querySelector("button[type=\"submit\"]").click(); });

Sin embargo, tenga en cuenta que todo el JavaScript que ejecute se ejecutará en el navegador, no en NodeJS, por lo que si desea recuperar el valor, puede devolver:

 const result = await page.evaluate(() => { var something = document.getElementById("something"); return something.innerText; }); console.log(result); // will print in the console "blah blah blah"

Del mismo modo, si desea pasar variables a la devolución de llamada, debe dárselas a la función de evaluación:

 await page.evaluate((name, age) => { // do something with 'name' and 'age' }, "John", 34);
about 4 years ago · Juan Pablo Isaza Relatório

0

En Nodejs, no tiene acceso a las API web como una ventana, un documento, etc., por lo que no puede usar document.querySelector para seleccionar elementos aquí.
En lugar de manejar los clics en los elementos DOM en el lado del servidor, debe manejar esos clics solo en el lado del cliente y luego obtener los datos del servidor en consecuencia.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda