Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { launch } from "puppeteer";
- export const login = async function(host: string, username: string, password: string) {
- const browser = await launch();
- try {
- const page = await browser.newPage();
- var puppeteerTransferedStorage = {};
- //setup console logging
- page.on("console", consoleObj => {
- const transferPrefix = "TRANSFER:";
- if (consoleObj.text().startsWith(transferPrefix)) {
- puppeteerTransferedStorage = JSON.parse(
- consoleObj.text().substring(transferPrefix.length)
- );
- } else {
- console.log(`BROWSER: ${consoleObj.text()}`);
- }
- });
- console.log("navigating to page");
- await page.goto(host);
- console.log("waiting for 1 second");
- //todo: find a hook that works instead of waiting
- await page.waitFor(2000);
- console.log("typing in username");
- await page.type("#i0116", username, { delay: 20 });
- console.log("clicking 'next' button");
- await page.click("#idSIButton9");
- console.log("waiting 5 seconds");
- //todo: find a hook that works instead of waiting
- await page.waitFor(5000);
- console.log("typing in email");
- await page.type("#user_email", username, { delay: 20 });
- console.log("typing in password");
- await page.type("#user_password", password, { delay: 20 });
- console.log("clicking submit");
- await page.click("#user_submit");
- console.log("waiting 1 second");
- //todo: find a hook that works instead of waiting
- await page.waitFor(1000);
- console.log("taking screenshot of page");
- await page.screenshot({ path: "example.png" });
- console.log("getting session storage");
- await page.evaluate(() => {
- let puppeteerSessionStorage = {};
- for (let i = 0; i < sessionStorage.length; i++) {
- puppeteerSessionStorage[sessionStorage.key(i)] = sessionStorage.getItem(
- sessionStorage.key(i)
- );
- }
- console.log("TRANSFER:" + JSON.stringify(puppeteerSessionStorage));
- });
- return puppeteerTransferedStorage;
- } finally {
- console.log("closing browser");
- await browser.close();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement