Skip to content

Instantly share code, notes, and snippets.

@javaadpatel
Last active July 30, 2020 19:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save javaadpatel/32c09622145edff0efc7c84b4e5f3b91 to your computer and use it in GitHub Desktop.
Save javaadpatel/32c09622145edff0efc7c84b4e5f3b91 to your computer and use it in GitHub Desktop.
Puppeteer script that navigates to amazon and adds Nyan cat hoodie to cart
/**
* @name Amazon shopping cart flow
*
* @desc Searches for a "nyan cat pullover" on amazon.com and then adds it to user's cart
*/
const puppeteer = require('puppeteer')
try {
(async () => {
// # 1
const browser = await puppeteer.launch({
headless: false, //show browser for debugging purposes
slowMo: 100, //slowdown interactions by 100 ms
args: [
'--window-size=1920,1080',
],
})
const page = await browser.newPage()
await page._client.send('Emulation.clearDeviceMetricsOverride');
await page.goto('https://www.amazon.com') // # 2
await page.type('#twotabsearchtextbox', 'nyan cat pullover') // # 3
await page.click('input.nav-input')
await page.waitForSelector('.s-result-list') // # 4
await page.screenshot({
path: 'amazon_nyan_cat_pullovers_list.png' // # 5
});
const pullovers = await page.$$('a.a-link-normal.a-text-normal') // # 6
const navigationPromise = page.waitForNavigation()
await pullovers[1].click();
await navigationPromise
await page.select('#native_dropdown_selected_size_name', '0,B07H7GTHZN') // # 7
await page.waitFor(1000) // # 8
await page.click('#add-to-cart-button') // # 9
await navigationPromise
await page.screenshot({
path: 'amazon_cart.png' // # 10
});
await page.waitFor(5000)
await browser.close() // # 11
})()
} catch (err) {
console.error(err)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment