I am trying use my code to click on a button using puppeteer but for some reason the button is always unable to be found (Not valid Selector/Error: No node found for selector) or the waitFor expires, this is my code:
const puppeteer = require('puppeteer');
const product_url = "https://www.amazon.co.uk/Usoun-Multi-Angle-Heat-Vent-Adjustable-Compatible/dp/B086HNM8F7/ref=sr_1_7?crid=16VVWBHJOOAYE&keywords=laptop+stand+adjustable&qid=1645642193&sprefix=laptop+stand+adjustable%2Caps%2C75&sr=8-7"
async function givePage(){
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
return page;
}
async function buyNow(page){
await page.goto(product_url);
await page.waitFor(20000);
await page.click("button[class='a-button a-button-oneclick a-button-icon onml-buy-now-
button buybox-button-enhancement-size']", elem => elem.click());
}
async function checkout(){
var page = await givePage();
await buyNow(page);
}
checkout();
I experienced few problems when running this code:
Luckily amazon uses lots of
id's
for their elements and I suggest you to always use the id whenever the id stays the same between page loads (it normally does!).Here is the fixed code