Best JavaScript code snippet using webdriverio-monorepo
screenShot.js
Source:screenShot.js
...38async function screenshot(url, imgOutput, htmlOutput, timeout) {39 // a terminal spinner40 const spinner = ora('screenshoting ...').start();41 try {42 const puppeteer = await getPuppeteer();43 // start puppeteer44 const browser = await puppeteer.launch();45 // create a new page46 const page = await browser.newPage();47 // set page's viewport48 page.setViewport({49 width: 1440,50 height: 900,51 deviceScaleFactor: 1,52 });53 // visit the target url54 await page.goto(url);55 if (timeout) {56 await sleep(timeout);...
readConfig.test.js
Source:readConfig.test.js
...11}12describe('getPuppeteer', () => {13 it('should return chromium when specified', async () => {14 expect(15 getPuppeteer({16 browser: 'Chromium',17 }),18 ).toBe(pptrChromium)19 })20 it('should return firefox when specified', async () => {21 expect(22 getPuppeteer({23 browser: 'Firefox',24 }),25 ).toBe(pptrFirefox)26 })27})28describe('readConfig', () => {29 describe('with custom config path', () => {30 beforeEach(() => {31 process.env.JEST_PUPPETEER_CONFIG = 'nop.js'32 })33 it('should return an error if not found', async () => {34 process.env.JEST_PUPPETEER_CONFIG = 'nop.js'35 expect.assertions(1)36 mockExists(false)...
readConfig.js
Source:readConfig.js
1const fs = require('fs')2const path = require('path')3const { promisify } = require('util')4const cwd = require('cwd')5const merge = require('merge-deep')6const exists = promisify(fs.exists)7const DEFAULT_CONFIG = {8 launch: {},9 browser: 'chromium',10 browserContext: 'default',11 exitOnPageError: true12}13const DEFAULT_CONFIG_CI = merge(DEFAULT_CONFIG, {14 launch: {15 args: [16 '--no-sandbox',17 '--disable-setuid-sandbox',18 '--disable-background-timer-throttling',19 '--disable-backgrounding-occluded-windows',20 '--disable-renderer-backgrounding'21 ]22 }23})24async function readConfig () {25 const defaultConfig = process.env.CI === 'true' ? DEFAULT_CONFIG_CI : DEFAULT_CONFIG26 const hasCustomConfigPath = !!process.env.JEST_PUPPETEER_CONFIG27 const configPath = process.env.JEST_PUPPETEER_CONFIG || 'jest-puppeteer.config.js'28 const absConfigPath = path.resolve(cwd(), configPath)29 const configExists = await exists(absConfigPath)30 if (hasCustomConfigPath && !configExists) {31 throw new Error(32 `Error: Can't find a root directory while resolving a config file path.\nProvided path to resolve: ${configPath}`33 )34 }35 if (!hasCustomConfigPath && !configExists) {36 return defaultConfig37 }38 // eslint-disable-next-line global-require, import/no-dynamic-require39 const localConfig = await require(absConfigPath)40 return merge({}, defaultConfig, localConfig)41}42function getPuppeteer (config) {43 switch (config.browser.toLowerCase()) {44 /* eslint-disable global-require, import/no-dynamic-require, import/no-extraneous-dependencies, import/no-unresolved */45 case 'chromium':46 try {47 const puppeteer = require('puppeteer-extra')48 return puppeteer49 } catch (e) {50 return require('puppeteer-core')51 }52 case 'firefox':53 return require('puppeteer-firefox')54 /* eslint-enable */55 default:56 throw new Error(`Error: "browser" config option is given an unsupported value: ${browser}`)57 }58}59module.exports = {60 readConfig: readConfig,61 getPuppeteer: getPuppeteer...
puppeteer.js
Source:puppeteer.js
...31 setTimeout(() => {32 rej(new Error('Puppeteer took too long'));33 }, 10000);34 const settings = await getSettings(launchSettings);35 // const puppeteer = getPuppeteer(launchSettings.useStealth);36 // const browser = await puppeteer.launch(await getSettings(settings));37 const browser = await chromium.puppeteer.launch(settings);38 const page = await browser.newPage();39 await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36');40 res({ browser, page });41 } catch (err) {42 rej(err);43 }44});45const clearTextInputAndType = async (input, text) => {46 await input.click({ clickCount: 3 });47 await input.type(text);48};49module.exports = {...
index.test.js
Source:index.test.js
...6const id = String(+new Date());7let gmailPuppeteer;8let message;9test('authorization', async () => {10 const result = await (await getPuppeteer()).authorization(email, password);11 expect(result).toBe('https://mail.google.com/mail/u/0/#inbox');12});13test('sending message', async () => {14 const messageText = await getMessage();15 const result = await (await getPuppeteer()).sendMessage(email, id, messageText);16 expect(result).toBe('ÐиÑÑмо оÑпÑавлено.');17});18test('check message', async () => {19 const messageInfo = await (await getPuppeteer()).getMessageById(id);20 expect(messageInfo.theme).toBe(id);21 expect(messageInfo.message).toBe(message);22});23async function getPuppeteer() {24 if (gmailPuppeteer) return gmailPuppeteer;25 const browser = await puppeteer.launch({headless: false});26 const page = await browser.newPage();27 gmailPuppeteer = new GmailPuppeteerHandler(page);28 return gmailPuppeteer;29}30async function getMessage() {31 if (message) return message;32 const nytimes = new NYTimes(NYApiKey);33 message = nytimes.getHeaders(await nytimes.getMostPopular()).join('\n');34 return message...
launch-browser.js
Source:launch-browser.js
...10 ...loadConfig,11 };12 try {13 logger.debug("Launching browser");14 const puppeteer = await getPuppeteer();15 browser = await puppeteer[method](rest);16 const [firstPage] = await browser.pages();17 page = firstPage;18 } catch (error) {19 console.error(error);20 return null;21 }22 if (config && config.dimensions) {23 await page.setViewport(config.dimensions).catch(noop);24 }25 logger.debug(`Heading to ${startUrl}`);26 await page.goto(startUrl, _loadConfig).catch(noop);27 await waitForNavigation(page, _loadConfig).catch(noop);28 logger.debug(`${startUrl} is ready`);...
run.js
Source:run.js
1async function getPuppeteer() {2 const puppeteer_params = {3 headless: true,4 args: ['--no-sandbox', '--disable-gpu', '--single-process'],5 executablePath: '../node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome',6 };7 const puppeteer = require('puppeteer-core');8 const browser = await puppeteer.launch(puppeteer_params);9 return browser;10}11const fileUrl = require('file-url');12(async function () {13 const browser = await getPuppeteer();14 const page = await browser.newPage();15 page.setViewport({ width: 320, height: 600 });16 await page.goto(fileUrl('index.html') + "?circle_name=bbbbbb&count=3", { waitUntil: ['domcontentloaded', 'networkidle0'] });17 await page.screenshot({ path: 'moge.png' });18 await browser.close();...
puppeteer.spec.js
Source:puppeteer.spec.js
1describe('use Puppeteer', () => {2 it('by wrapping commands with call', () => {3 browser.url('http://json.org')4 const puppeteer = browser.getPuppeteer()5 const page = browser.call(() => puppeteer.pages())[0]6 console.log(browser.call(() => page.title()))7 })8 it('by using async/await', async () => {9 const puppeteer = browser.getPuppeteer()10 const page = (await puppeteer.pages())[0]11 console.log(await page.title())12 })...
Using AI Code Generation
1const { remote } = require('webdriverio');2(async () => {3 const browser = await remote({4 capabilities: {5 }6 })7 await browser.deleteSession()8})().catch((e) => console.error(e))9const puppeteer = require('puppeteer');10(async () => {11 const browser = await puppeteer.launch();12 const page = await browser.newPage();13 await page.screenshot({path: 'example.png'});14 await browser.close();15})();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3(async () => {4 const browser = await puppeteer.launch({headless: false});5 const page = await browser.newPage();6 await page.screenshot({path: 'example.png'});7 await browser.close();8})();9(async () => {10 const browser = await remote({11 capabilities: {12 }13 })14 const title = await browser.getTitle()15 console.log('Title was: ' + title)16 await browser.deleteSession()17})()18(async () => {19 const browser = await remote({20 capabilities: {21 }22 })23 const title = await browser.getTitle()24 console.log('Title was: ' + title)25 await browser.deleteSession()26})()27(async () => {28 const browser = await remote({29 capabilities: {30 }31 })32 const title = await browser.getTitle()33 console.log('Title was: ' + title)34 await browser.deleteSession()35})()36(async () => {37 const browser = await remote({38 capabilities: {39 }40 })41 const title = await browser.getTitle()42 console.log('Title was: ' + title)43 await browser.deleteSession()44})()45(async () => {46 const browser = await remote({47 capabilities: {48 }49 })50 const title = await browser.getTitle()51 console.log('Title was: ' + title)52 await browser.deleteSession()53})()54(async () => {55 const browser = await remote({56 capabilities: {57 }
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3(async () => {4 const browser = await puppeteer.launch({headless: false});5 const page = await browser.newPage();6 await page.setViewport({ width: 1280, height: 800 })7 await page.screenshot({path: 'example.png'});8 await browser.close();9})();10(async () => {11 const browser = await remote({12 capabilities: {13 }14 })15 console.log(await browser.getTitle())16 await browser.deleteSession()17})()18const puppeteer = require('puppeteer');19const { remote } = require('webdriverio');20const { Builder, By, Key, until } = require('selenium-webdriver');21(async function example() {22 let driver = await new Builder().forBrowser('chrome').build();23 try {24 await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);25 await driver.wait(until.titleIs('webdriver - Google Search'), 1000);26 } finally {27 await driver.quit();28 }29})();30const puppeteer = require('puppeteer');31const { remote } = require('webdriverio');32const { Builder, By, Key, until } = require('selenium-webdriver');33(async function example() {34 let driver = await new Builder().forBrowser('chrome').build();35 try {36 await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);37 await driver.wait(until.titleIs('webdriver - Google Search'), 1000);38 } finally {39 await driver.quit();40 }41})();42const puppeteer = require('puppeteer');43const { remote } = require('webdriverio');44const { Builder, By, Key, until } = require('selenium-webdriver');45(async function example() {46 let driver = await new Builder().forBrowser('chrome').build();47 try {
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3(async () => {4 const browser = await remote({5 capabilities: {6 'goog:chromeOptions': {7 },8 },9 });10 const page = await browser.getPuppeteer();11 await browser.deleteSession();12})();13const puppeteer = require('puppeteer');14(async () => {15 const browser = await puppeteer.launch();16 const page = await browser.newPage();17 await browser.close();18})();19 (unknown error: DevToolsActivePort file doesn't exist)20 (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)21 (Driver info: chromedriver=2.46.628388 (c9e64f7d9b2a2b2e4b4c8b3d4e4c3f4b4b9e28e9),platform=Linux 4.19.0-12-amd64 x86_64)22const puppeteer = require('puppeteer');23const { remote } = require('webdriverio');24(async () => {25 const browser = await remote({26 capabilities: {27 'goog:chromeOptions': {28 },29 },30 });31 const page = await browser.getPuppeteer();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3describe('webdriver.io page', () => {4 it('should have the right title', async () => {5 const browser = await puppeteer.launch({ headless: true });6 const page = await browser.newPage();7 const title = await page.title();8 expect(title).toBe('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');9 await browser.close();10 });11});
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3const { getPuppeteerForWebDriver } = require('webdriverio/build/utils');4const browser = await remote({5 capabilities: {6 }7});8const puppeteerBrowser = getPuppeteerForWebDriver(browser);9const page = await puppeteerBrowser.newPage();10await page.screenshot({ path: 'example.png' });11await browser.deleteSession();
Using AI Code Generation
1const puppeteer = require('puppeteer');2const { remote } = require('webdriverio');3const { getTestState } = require('@wdio/allure-reporter').default;4const { getTestContext } = require('@wdio/allure-reporter').default;5const { addAttachment } = require('@wdio/allure-reporter').default;6const opts = {7 capabilities: {8 }9};10(async () => {11 const browser = await puppeteer.launch();12 const context = await browser.createIncognitoBrowserContext();13 const page = await context.newPage();14 const client = await page.target().createCDPSession();15 await client.send('Network.enable');16 await client.send('Network.setRequestInterception', { patterns: [{ urlPattern: '.*', resourceType: 'Image', interceptionStage: 'HeadersReceived' }] });17 client.on('Network.requestIntercepted', async ({ interceptionId, request, responseStatusCode, responseHeaders }) => {18 let result = await client.send('Network.getResponseBodyForInterception', {19 });20 let response = result.base64Encoded ? Buffer.from(result.body, 'base64') : result.body;21 let allure = getTestState(getTestContext());22 let allureAttachment = allure.addAttachment(`Image ${request.url}`, new Buffer(response, 'base64'), 'image/png');23 await client.send('Network.continueInterceptedRequest', {24 });25 });26 await page.screenshot({ path: 'google.png' });27 await browser.close();28})();
Wondering what could be a next-gen browser and mobile test automation framework that is also simple and concise? Yes, that’s right, it's WebdriverIO. Since the setup is very easy to follow compared to Selenium testing configuration, you can configure the features manually thereby being the center of attraction for automation testing. Therefore the testers adopt WedriverIO to fulfill their needs of browser testing.
Learn to run automation testing with WebdriverIO tutorial. Go from a beginner to a professional automation test expert with LambdaTest WebdriverIO tutorial.
Running Your First Automation Script - Learn the steps involved to execute your first Test Automation Script using WebdriverIO since the setup is very easy to follow and the features can be configured manually.
Selenium Automation With WebdriverIO - Read more about automation testing with WebdriverIO and how it supports both browsers and mobile devices.
Browser Commands For Selenium Testing - Understand more about the barriers faced while working on your Selenium Automation Scripts in WebdriverIO, the ‘browser’ object and how to use them?
Handling Alerts & Overlay In Selenium - Learn different types of alerts faced during automation, how to handle these alerts and pops and also overlay modal in WebdriverIO.
How To Use Selenium Locators? - Understand how Webdriver uses selenium locators in a most unique way since having to choose web elements very carefully for script execution is very important to get stable test results.
Deep Selectors In Selenium WebdriverIO - The most popular automation testing framework that is extensively adopted by all the testers at a global level is WebdriverIO. Learn how you can use Deep Selectors in Selenium WebdriverIO.
Handling Dropdown In Selenium - Learn more about handling dropdowns and how it's important while performing automated browser testing.
Automated Monkey Testing with Selenium & WebdriverIO - Understand how you can leverage the amazing quality of WebdriverIO along with selenium framework to automate monkey testing of your website or web applications.
JavaScript Testing with Selenium and WebdriverIO - Speed up your Javascript testing with Selenium and WebdriverIO.
Cross Browser Testing With WebdriverIO - Learn more with this step-by-step tutorial about WebdriverIO framework and how cross-browser testing is done with WebdriverIO.
Get 100 minutes of automation test minutes FREE!!