Skip to content

Instantly share code, notes, and snippets.

@VottusCode
Created October 20, 2022 08:26
Show Gist options
  • Save VottusCode/4b49171bcafa0e9efdabeb29039825a3 to your computer and use it in GitHub Desktop.
Save VottusCode/4b49171bcafa0e9efdabeb29039825a3 to your computer and use it in GitHub Desktop.
Vodafone AR2SINEW Restart script
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();
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