Created
October 20, 2022 08:26
-
-
Save VottusCode/4b49171bcafa0e9efdabeb29039825a3 to your computer and use it in GitHub Desktop.
Vodafone AR2SINEW Restart script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const VodafoneUrl = "http://192.168.0.1"; | |
const Username = "admin"; | |
const Password = "password"; | |
const { | |
fill, | |
createBrowser, | |
elementExists, | |
waitAndClick, | |
} = require("./puppeteer"); | |
const run = async () => { | |
const browser = await createBrowser(); | |
const page = await browser.newPage(); | |
await page.goto(VodafoneUrl); | |
const loggedIn = !elementExists("#LoginBtn"); | |
if (!loggedIn) { | |
await fill(page, "#UserName", Username); | |
await fill(page, "#Password", Password); | |
// Submit Button | |
await (await page.$("#LoginBtn")).evaluate((b) => b.click()); | |
} | |
// Element shown for logged in users | |
await page.waitForSelector("#userModeSelect"); | |
// Restart page | |
await page.goto(`${VodafoneUrl}/?status_restart&mid=StatusRestart`); | |
// Restart button | |
await waitAndClick(page, "#PAGE_RESTART_RESTART"); | |
// Apply button | |
await waitAndClick(page, "#PAGE_RESTART_POPUP_APPLY1"); | |
await browser.close(); | |
}; | |
run(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const p = require("puppeteer"); | |
const { Browser, BrowserPath } = require("../constants"); | |
module.exports.createBrowser = () => | |
p.launch({ | |
headless: process.env.NODE_ENV === "development", | |
product: Browser, | |
executablePath: BrowserPath, | |
}); | |
/** | |
* | |
* @param {p.Page} page | |
* @param {string} selector | |
* @returns | |
*/ | |
module.exports.elementExists = async (page, selector) => { | |
try { | |
await page.$(selector); | |
return true; | |
} catch { | |
return false; | |
} | |
}; | |
/** | |
* | |
* @param {p.Page} page | |
* @param {string} selector | |
* @returns | |
*/ | |
module.exports.waitAndClick = async (page, selector) => { | |
await page.waitForSelector(selector); | |
return await page.click(selector); | |
}; | |
/** | |
* | |
* @param {p.Page} page | |
* @param {string} selector | |
* @param {string} val | |
*/ | |
module.exports.fill = (page, selector, val) => | |
page.$eval(selector, (el, value) => (el.value = value), val); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment