Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

956
Views
Titiritero: ¿cómo hacer clic () en un solo botón de una cuadrícula de botones con el mismo nombre de clase?

Estoy desarrollando un Nike SNKRS BOT para comprar zapatillas con Puppeteer y Node.js.

Tengo problemas para distinguir y .click() Captura de pantalla del botón de tamaño de herramientas de desarrollo html y botones frontales

Ese es mi código: no tengo experiencia, así que lo he intentado todo.

 const xpathButton = '//* [@id="root"]/div/div/div[1]/div/div[1]/div[2]/div/section[1]/div[2]/aside/div/div[2]/div/ div[2]/ul/li[1]/button'
 const puppeteer = require('puppeteer') const productUrl = 'https://www.nike.com/it/launch/t/air-max-97-coconut- milk-black' const idAcceptCookies = "button[class='ncss-btn-primary-dark btn-lg']" async function givePage(){ const browser = await puppeteer.launch({headless: false}) const page = await browser.newPage(); return page; } async function addToCart(page){ await page.goto(urlProdotto); await page.waitForSelector(idAcceptCookies); await page.click(idAcceptCookies,elem => elem.click()); //this is where the issues begin //attempt 1 await page.evaluate(() => document.getElementsByClassName('size-grid- dropdown size-grid-button"')[1].click()); //attempt 2 const sizeButton = "button[class='size-grid-dropdown size-grid-button'] button[name='42']"; await page.waitForSelector(sizeButton); await page.click(sizeButton,elem => elem.click()); } //attempt 3 await page.click(xpathButton) //attempt 4 document.evaluate("//button[contains ( ., '36')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue async function checkout(){ var page = await givePage(); await addToCart(page) } checkout()
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El intento número 2 parece el mejor enfoque, excepto que su selector es incorrecto. El button no tiene un atributo de name , según su captura de pantalla, por lo que necesitará otro enfoque, más cercano al intento 3.

Puede usar titiritero para seleccionar un elemento con xpath , y xpath le permite seleccionar por el contenido de texto de un elemento.

Prueba esto:

 const [button] = await page.$x('//button[contains(text(), "EU 36")]') await button.click()

Debido a que el selector xpath devuelve una matriz de identificadores de elementos, desestructura el primer elemento de la matriz (que debería ser la única coincidencia) y le asigna un valor de botón. Ahora se puede hacer clic en el identificador de ese elemento.

about 4 years ago · Juan Pablo Isaza Report

0

Recomendaría que use las herramientas de desarrollo de Chrome Recorder para hacer el script, will write the script for you y lo ayudará con los selectores.

luego y expórtalo, mira el video sobre cómo usar

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!