Skip to content

Instantly share code, notes, and snippets.

@ragog
Created November 27, 2020 13:03
Show Gist options
  • Save ragog/015a89f4bbda449f4f4e8e07cb2d386d to your computer and use it in GitHub Desktop.
Save ragog/015a89f4bbda449f4f4e8e07cb2d386d to your computer and use it in GitHub Desktop.
const { chromium } = require("playwright");
const assert = require("chai").assert;
const fs = require('fs');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
let rawdata = fs.readFileSync('books.json');
const bookList = JSON.parse(rawdata)
let foundList = bookList
await page.goto('https://danube-webshop.herokuapp.com//')
// await page.click('.topbar > input')
// await page.type('.topbar > input', 'for')
// await page.click('#button-search')
await page.waitForSelector('.shop-content > ul > .preview:nth-child(1) > .preview-title')
// halt immediately if results do not equal expected number
let resultsNumber = (await page.$$('.preview-title')).length
assert.equal(resultsNumber, bookList.length)
// remove every element found from the second array...
for (i = 0; i < resultsNumber; i++) {
const bookTitle = await page.$eval(`.preview:nth-child(${i+1}) > .preview-title`, e => e.innerText)
const bookAuthor = await page.$eval(`.preview:nth-child(${i+1}) > .preview-author`, e => e.innerText)
foundList = foundList.filter(e => (!((e.title === bookTitle) && (e.author === bookAuthor))))
}
// ...then assert that the second array is now empty
assert.equal(foundList.length, 0)
await browser.close()
})()
const puppeteer = require("puppeteer");
(async () => {
const puppeteer = require("puppeteer");
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
const navigationPromise = page.waitForNavigation();
await page.goto("https://www.amazon.com/");
await page.setViewport({ width: 1200, height: 873 });
await page.waitForSelector("#nav-search #twotabsearchtextbox");
await page.click("#nav-search #twotabsearchtextbox");
let randomSixNum = Math.floor(Math.random() * 89999 + 100000);
await page.type("#twotabsearchtextbox", randomSixNum.toString());
await navigationPromise;
await browser.close();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment