A GUNet puppeteer Docker image
Important: This is a work in progress
#id: Selects the element with id="<id>"div p: Selects all <p> elements inside <div> elementsCopy->CSS Selectorgunet.jsconst puppeteer = require('puppeteer');
const gunet = require('./gunet.js');
const url = process.argv.slice(2);
console.log(url[0]);
(async () => {
const browser = await puppeteer.launch(gunet.browserOptions());
const page = await gunet.newPage(browser);
await page.goto(url[0]);
await page.waitForTimeout(1000)
-- Do staff --
await browser.close();
})();
click
page elementselectorawait cas.click(page, "#login")assertVisibility
page elementselectorawait cas.assertVisibility(page, '#token')waitForVisible
page elementselectorawait this.waitForVisible(page, '#username')assertInnerText
page elementselectorvalue to search forawait gunet.assertInnerText(page, '#content div h2', "Επιτυχής Σύνδεση");assertInnerTextContains
page elementselectorvalue to search forassertTextInSource
page elementvalue to search forawait gunet.assertTextInSource(page,'OAuth2Token');assertPageTitle
page elementvalue to search forawait gunet.assertPageTitle(page, 'SimpleSAMLphp installation page');type
page elementselectorvalue typedawait gunet.type(page, "#token",'999666');sleep
msmssubmitForm
page elementselectorloginWith
page elementuserpasswordawait gunet.loginWith(page, process.env.CAS_USER, process.env.CAS_PASSWORD);assertTicketGrantingCookie
page elementawait gunet.assertTicketGrantingCookie(page);casLogin
page elementuser to usepassword to usecas_type to use. Can be one of simple-cas for typical CAS (default) or gunet-cas (for GUNet CAS)cas_lang to use. Can be one of en (default) or elawait gunet.casLogin(page, process.env.CAS_USER, process.env.CAS_PASSWORD,process.env.CAS_LANG);run_test.sh <scenario> <server URL>: Run a specific specified scenario against the <server URL>. For example: run_test.sh cas https://host.docker.internal:8443/cas. The scenario is a folder under scenarios/ containing a file script.jsdocker compose -f docker-compose.build.yaml builddocker run you can volume mount the scenarios folder as -v <your scenarios folder>:/home/puppeteer/scenarios
const gunet = require('../gunet.js'); in order to use the GUNet librariesscenarios):FROM gunet/puppeteer:latest
COPY scenarios/ ${PUPPETEER_ROOT}/scenarios/
CAS_USER: Username (default gunetdemo)CAS_PASSWORD: Password (default gunetdemo)CAS_LANG: The language to assume in the CAS login page. Can be en (default) or elCAS_TYPE: The CAS type. Can be one of simple-cas for typical CAS (default) or gunet-cas (for GUNet CAS)docker run --rm ghcr.io/gunet/puppeteer npm listdocker run -it --cap-add=SYS_ADMIN --rm ghcr.io/gunet/puppeteer node --unhandled-rejections=strict <scenario + args>cas: ./login.js <SSO BASE URL>run_test.sh (scenarios ): docker run -it --cap-add=SYS_ADMIN --rm ghcr.io/gunet/puppeteer bash run_test.sh <scenario> <url><SSO BASE URL>: An example might be https://sso.uoi.gr or https://worker-01.dev.gunet.gr:8443/cas (in the case of simple-cas)docker compose -f <your docker compose stack yaml file> up --exit-code-from <puppeteer service> --attach <puppeteer service
exit 1 if one of them fails or exit 0 if all return correctly.1.17 GBContent type
Image
Digest
sha256:e32b9687a…
Size
570.6 MB
Last updated
almost 2 years ago
docker pull gunet/puppeteer