This repository has been archived by the owner on Nov 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathavivamymoney.js
52 lines (37 loc) · 2.09 KB
/
avivamymoney.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
* `AVIVA_USER=myuser AVIVA_PWD=mypassword node aviva.js`
*
*/
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage();
try {
const session = await page.target().createCDPSession();
const { windowId } = await session.send('Browser.getWindowForTarget');
//await session.send('Browser.setWindowBounds', {windowId, bounds: {windowState: 'minimized'}});
await page.setViewport({ width: 768, height: 768 })
await page.goto('https://www.avivamymoney.co.uk/Login');
await page.waitForSelector('#onetrust-accept-btn-handler');
await page.click('#onetrust-accept-btn-handler');
await page.waitForSelector('a.btn-primary:nth-child(1)');
await page.type('#Username', process.env.AVIVAMYMONEY_USER, {delay: 10});
await page.type('#Password', process.env.AVIVAMYMONEY_PWD, {delay: 10});
await page.waitForTimeout(1000);
await page.click('a.btn-primary:nth-child(1)');
await page.waitForSelector("html");
await page.waitForSelector("#FirstLetter");
await page.select("#FirstLetter", process.env.AVIVAMYMONEY_WORD.charAt(await page.evaluate('document.querySelector("#FirstElement_Index").getAttribute("value")') - 1));
await page.select("#SecondLetter", process.env.AVIVAMYMONEY_WORD.charAt(await page.evaluate('document.querySelector("#SecondElement_Index").getAttribute("value")') - 1));
await page.select("#ThirdLetter", process.env.AVIVAMYMONEY_WORD.charAt(await page.evaluate('document.querySelector("#ThirdElement_Index").getAttribute("value")') - 1));
await page.click('[name=Next]');
const element = await page.waitForSelector(".vspace-reset.text-size-42");
const balance = await element.evaluate(el => el.textContent);
console.log(balance.replace("£", "").replace(",", ""));
} catch (error) {
console.error(error);
await page.screenshot({ path: 'debug-avivamymoney-' + process.env.AVIVAMYMONEY_USER + '.png' });
}
await browser.close();
})