Best JavaScript code snippet using webdriverio-monorepo
state-test.js
Source:state-test.js
...51 let test2 = test1.updateLaunched({ browser: 'chrome' }, '0001');52 expect(test2).to.equal(test1);53 });54 it('does not update browsers that were not launched', () => {55 let test1 = create(State).connectBrowser({ browser: 'chrome', id: '01' });56 let test2 = test1.updateLaunched({ browser: 'chrome' }, '0001');57 expect(test2).to.equal(test1);58 });59 it('adds a new browser immutably when a new browser connects', () => {60 let test1 = create(State);61 let test2 = test1.connectBrowser({ id: '01', browser: 'chrome' });62 expect(test2).to.not.equal(test1);63 expect(test2.tests).to.equal(test1.tests);64 expect(test2.browsers).to.not.equal(test1.browsers);65 expect(test2.browsers[0]).to.be.an.instanceof(Browser)66 .and.property('connected').is.true;67 });68 it('updates a launched browser immutably when adding a connection', () => {69 let test1 = create(State).launchBrowser('0001')70 .updateLaunched({ browser: 'chrome' }, '0001');71 let test2 = test1.connectBrowser({ id: '01', browser: 'chrome' });72 expect(test2).to.not.equal(test1);73 expect(test2.tests).to.equal(test1.tests);74 expect(test2.browsers).to.not.equal(test1.browsers);75 expect(test2.browsers[0]).to.not.equal(test1.browsers[0]);76 expect(test2.browsers[0]).to.be.an.instanceof(Browser)77 .and.property('connected').is.true;78 });79 it('does not update when connecting with an existing connection', () => {80 let meta = { id: '01', browser: 'chrome' };81 let test1 = create(State).connectBrowser(meta);82 let test2 = test1.connectBrowser(meta);83 expect(test2).to.equal(test1);84 });85 it('updates a browser immutably when disconnecting', () => {86 let meta = { id: '01', browser: 'chrome' };87 let test1 = create(State).connectBrowser(meta);88 let test2 = test1.disconnectBrowser(meta);89 expect(test2).to.not.equal(test1);90 expect(test2.tests).to.equal(test1.tests);91 expect(test2.browsers).to.not.equal(test1.browsers);92 expect(test2.browsers[0]).to.not.equal(test1.browsers[0]);93 expect(test2.browsers[0]).to.be.an.instanceof(Browser)94 .and.property('connected').is.false;95 });96 it('does not update when disconnecting if already disconnected', () => {97 let meta = { id: '01', browser: 'chrome' };98 let test1 = create(State).connectBrowser(meta).disconnectBrowser(meta);99 let test2 = test1.disconnectBrowser(meta);100 expect(test2).to.equal(test1);101 });102 it('updates a browser to a running state and adds test states when starting tests', () => {103 let meta = { id: '01', browser: 'chrome' };104 let test1 = create(State).connectBrowser(meta);105 let test2 = test1.startTests(meta, [{ name: 'test', running: true }]);106 expect(test2).to.not.equal(test1);107 expect(test2.tests).to.not.equal(test1.tests);108 expect(test2.browsers).to.not.equal(test1.browsers);109 expect(test2.browsers[0]).to.not.equal(test1.browsers[0]);110 expect(test2.tests[0]).to.be.an.instanceof(Test)111 .and.have.property('running', true);112 expect(test2.browsers[0]).to.be.an.instanceof(Browser)113 .and.have.property('running', true);114 });115 it('does not start tests when the browser is not connected', () => {116 let meta1 = { id: '01', browser: 'chrome' };117 let test1 = create(State).connectBrowser(meta1);118 let meta2 = { id: '02', browser: 'firefox' };119 let test2 = test1.startTests(meta2, [{ name: 'test', failing: true }]);120 expect(test2).to.equal(test1);121 });122 it('updates or adds tests immutably by name and path', () => {123 let meta = { id: '01', browser: 'chrome' };124 let test1 = create(State).connectBrowser(meta)125 .startTests(meta, [126 { name: 'test 1', path: ['context'] },127 { name: 'test 2' }128 ]);129 let test2 = test1.updateTests(meta, [130 { name: 'test 1', path: ['context'], running: true },131 { name: 'test 1', path: ['other context'] },132 { name: 'test 2' }133 ]);134 expect(test2).to.not.equal(test1);135 expect(test2.browsers).to.equal(test1.browsers);136 expect(test2.tests).to.not.equal(test1.tests);137 expect(test2.tests[0]).to.not.equal(test1.tests[0]);138 expect(test2.tests[0]).to.be.an.instanceof(Test)139 .and.have.property('running', true);140 expect(test2.tests[1]).to.equal(test1.tests[1]);141 expect(test2.tests[2]).to.be.an.instanceof(Test)142 .and.deep.equal({143 name: 'test 1',144 path: ['other context'],145 all: [{ browser: 'chrome' }]146 });147 });148 it('does not update tests redundantly', () => {149 let meta = { id: '01', browser: 'chrome' };150 let data = [151 { name: 'test 1', passing: true },152 { name: 'test 2', failing: true }153 ];154 let test1 = create(State)155 .connectBrowser(meta)156 .startTests(meta, data);157 let test2 = test1.updateTests(meta, data);158 expect(test2).to.equal(test1);159 });160 it('updates a running browser to a finished state when ending tests', () => {161 let meta = { id: '01', browser: 'chrome' };162 let test1 = create(State).connectBrowser(meta).startTests(meta, []);163 let test2 = test1.endTests(meta);164 expect(test2).to.not.equal(test1);165 expect(test2.tests).to.equal(test1.tests);166 expect(test2.browsers).to.not.equal(test1.browsers);167 expect(test2.browsers[0]).to.not.equal(test1.browsers[0]);168 expect(test2.browsers[0]).to.be.an.instanceof(Browser)169 .and.property('finished').is.true;170 });171 it('does not update a browser that is not running when ending tests', () => {172 let meta = { id: '01', browser: 'chrome' };173 let test1 = create(State).connectBrowser(meta);174 let test2 = test1.endTests(meta);175 expect(test2).to.equal(test1);176 });177 it('does not update an unknown browser when ending tests', () => {178 let meta = { id: '01', browser: 'chrome' };179 let test1 = create(State).connectBrowser(meta).startTests(meta, []);180 let test2 = test1.endTests({ id: '01', browser: 'firefox' });181 expect(test2).to.equal(test1);182 });183 describe('status properties', () => {184 let chrome = { id: '01', browser: 'chrome' };185 let firefox = { id: '02', browser: 'firefox' };186 let test;187 beforeEach(() => {188 test = create(State)189 .launchBrowser('0001')190 .launchBrowser('0002')191 .updateLaunched(chrome, '0001')192 .updateLaunched(firefox, '0002');193 });194 it('is ready when all lauched browsers have connected', () => {195 expect(test.ready).to.be.false;196 test = test.connectBrowser(chrome);197 expect(test.ready).to.be.false;198 test = test.connectBrowser(firefox);199 expect(test.ready).to.be.true;200 });201 it('remains ready when launched browsers disconnect', () => {202 expect(test.ready).to.be.false;203 test = test204 .connectBrowser(chrome)205 .connectBrowser(firefox);206 expect(test.ready).to.be.true;207 test = test.disconnectBrowser(firefox);208 expect(test.ready).to.be.true;209 });210 it('is started when there are tests present', () => {211 expect(test.started).to.be.false;212 test = test213 .connectBrowser(chrome)214 .startTests(chrome, [{ name: 'test' }]);215 expect(test.started).to.be.true;216 });217 it('is finished when all browsers are finished', () => {218 let safari = { id: '003', browser: 'safari' };219 expect(test.finished).to.be.false;220 test = test221 .connectBrowser(chrome)222 .connectBrowser(firefox)223 .connectBrowser(safari)224 .startTests(chrome, [])225 .startTests(firefox, [])226 .startTests(safari, []);227 expect(test.finished).to.be.false;228 test = test229 .endTests(chrome)230 .endTests(firefox);231 expect(test.finished).to.be.false;232 test = test.endTests(safari);233 expect(test.finished).to.be.true;234 });235 it('has a status property', () => {236 expect(test.status).to.equal(0);237 });...
app.js
Source:app.js
...9//const sqlite3 = require('sqlite3').verbose();10const {log, error, accName, dbname, profile, social, count} = config;11log(dbname);12//const db = new sqlite3.Database(`logs/${dbname}`);13function connectBrowser() {14 let options = new chrome.Options();15 options.setChromeBinaryPath(config.chrome_options.binaryPath);16 options.addArguments('user-data-dir=' + profile);17 options.addArguments('disable-infobars');18 options.addArguments('no-pings');19 options.addArguments('window-size=1000,825');20 21 //headless22 // dosen't work on Chrome 61, Cromedriver 2.3123 //options.addArguments('headless');24 //options.addArguments('disable-gpu');25 //options.addArguments('disable-plugins');26 //options.addArguments('remote-debugging-port=9222');27 let capabilities = new webdriver.Capabilities(webdriver.Capabilities.chrome()); 28 capabilities.set('TIMEOUTS', {29 implicit: 1500,30 pageLoad: 40*100031 });32 33 let driver = new webdriver.Builder()34 .setChromeOptions(options)35 .withCapabilities(capabilities)36 .build();37 // driver.manage().timeouts().implicitlyWait(1500); 38// driver.manage().timeouts().pageLoadTimeout(40*1000);39 return driver; 40}41async function run() {42 43 let driver = connectBrowser();44 let dbLog;// = new DBLog(db);45 let bosslike = new Bosslike(driver, dbLog);46 bosslike.open(social, 'all'); 47 try {48 await bosslike.waitForLogin();49 } catch(e) { 50 error(e, "Login not perfomed");51 return;52 } 53 for (let i = 0; i < count; i++) {54 55 if (i % 5 === 0) {56 log("\x1b[33m" + i, dateFormat(new Date, 'HH:MM:ss, dd.mm.yy'), "\x1b[39m");57 } else {58 log("\x1b[33m" + i, "\x1b[39m");59 }60 let taskType = bosslike.getTaskType(i);61 let isOpen = await bosslike.open(social, taskType);62 if (!isOpen) {63 try {64 bosslike.driver.quit();65 } catch (e) {66 error(e, "quit"); 67 } 68 log("Reconnecting to browser");69 bosslike.driver = connectBrowser();70 await config.sleep(config.PAUSE.RECONNECTING);71 continue;72 } 73 bosslike.mainWindow = await bosslike.driver.getWindowHandle();74 try {75 let title = accName + ' (' + (count-i) + ')';76 await bosslike.driver.executeScript(`window.document.title = "${title}"`);77 } catch(e){78 error(e, "");79 }80 81 if (!await bosslike.waitForTasksToBeLoaded()) continue;82 try {83 await bosslike.getTasksAndCompleteFirst();...
index.js
Source:index.js
...32 }33 async launch(options) {34 this.launchBrowser(options);35 }36 async connectBrowser(options) {37 if (!this.browser) {38 logger.log('Launching browser...');39 try {40 this.browser = await puppeteer.connect(options);41 } catch (error) {42 logger.trace(error);43 }44 } else {45 logger.log('Using existing browser instance');46 }47 }48 async connect(options) {49 this.connectBrowser(options);50 }51 init(config) {52 this.testId += 1;53 const testConfig = sanitiseTestConfiguration(config, this.testId);54 if (testConfig.isUpdate) {55 logger.warn('Your tests are running on update mode. Test screenshots will be updated');56 }57 const target = new Target(this.browser, this.configuration, testConfig);58 target.isJest();59 const chainedTarget = chain(target, testConfig.chain);60 target.chainedTarget = chainedTarget;61 return chainedTarget;62 }63 async cleanup() {...
caiso-scraper.js
Source:caiso-scraper.js
...15let difference = (endDate - startDate) / (1000 * 3600 * 24);16console.log(difference);1718(async () => {19 async function connectBrowser() {20 const browserURL = 'http://127.0.0.1:49150';21 const browser = await puppeteer.connect({ browserURL });22 const pages = await browser.pages();23 const page = pages[0];24 return { page, pages, browser };25 }2627 const { page } = await connectBrowser();28 await page.goto('http://www.caiso.com/todaysoutlook/pages/emissions.html', { waitUntil: 'load' });2930 async function download(fullDate) {3132 await page.evaluate(() => {33 document.querySelector('.form-control.form-control-sm.date.co2-date').value = '';34 });3536 await page.type('.form-control.form-control-sm.date.co2-date', fullDate);37 await page.keyboard.press('Enter');3839 await page.evaluate(() => {40 document.querySelector('.form-control.form-control-sm.date.co2-date').blur();41 });
...
crawl.js
Source:crawl.js
1const puppeteer = require('puppeteer');2const fs = require('fs');3const genre = 'action'4connectBrowser(genre);5async function connectBrowser(genreChoice) {6 7 const browser = await puppeteer.launch();8 const page = await browser.newPage();9 await page.goto(`https://www.imdb.com/search/title/?genres=${genreChoice}&sort=user_rating,desc&title_type=feature&num_votes=25000,&`)10 // manipula o DOM no site aberto11 const movieObject = await page.evaluate(() => {12 const getMovieList = document.querySelectorAll(".lister-item-header a");13 const getRank = document.querySelectorAll('.ratings-imdb-rating strong');14 const movieArray = [...getMovieList];15 const rankArray = [...getRank];16 17 let completeObject = [{}]18 19 for(let i=0; i<movieArray.length; i++) {...
connectBrowser.js
Source:connectBrowser.js
...20 await testCategory({ page, id });21 };22 });23}24async function connectBrowser() {25 const response = await fetch('http://127.0.0.1:9222/json/version');26 const json = await response.json();27 const browser = await puppeteer.connect({28 browserWSEndpoint: json.webSocketDebuggerUrl29 });30 await Promise.map(31 generateTests(),32 async test => {33 try {34 const page = await browser.newPage();35 await test(page);36 await page.close();37 } catch (e) {38 console.error(e);39 }40 },41 { concurrency: 5 }42 );43 await browser.disconnect();44}45(async () => {46 try {47 await connectBrowser();48 } catch (e) {49 console.error(e);50 }...
scraper.js
Source:scraper.js
...3const { sleep, generateRandomRealisticTime } = require('./lib/sleep');4const scraper = async () =>Â {5 await sleep('Starting scraper in', generateRandomRealisticTime());6 const chromeInstance = await getChromeInstance();7 const { browser, page } = await connectBrowser(chromeInstance);8 await page.goto('https://www.google.com/', {9 waitUntil: 'networkidle0' // Waits untill page is fully loaded. 10 });11 await page.waitForSelector('#fsl > a:nth-child(2)', {12 timeout: 3000 // Option: will throw error after X milliseconds if no selector is found 13 });14 const text = await page.evaluate(() => {15 return document.querySelector('#fsl > a:nth-child(2)').innerText;16 })17 console.log(text);18 return text;19}...
browser.js
Source:browser.js
1const puppeteer = require('puppeteer')2const connectBrowser = async (chromeInstance) => {3 const browser = await puppeteer.connect({4 browserWSEndpoint: chromeInstance,5 });6 const page = await browser.newPage();7 await page.setViewport({ width: 1400, height: 789 });8 return { browser, page };9};10module.exports = {11 connectBrowser,...
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = { desiredCapabilities: { browserName: 'chrome' } };3 .remote(options)4 .init()5 .getTitle().then(function(title) {6 console.log('Title was: ' + title);7 })8 .end();9var webdriverio = require('webdriverio');10var options = { desiredCapabilities: { browserName: 'chrome' } };11 .remote(options)12 .init()13 .getTitle().then(function(title) {14 console.log('Title was: ' + title);15 })16 .end();17var webdriverio = require('webdriverio');18var options = { desiredCapabilities: { browserName: 'chrome' } };19 .remote(options)20 .init()21 .getTitle().then(function(title) {22 console.log('Title was: ' + title);23 })24 .end();25var webdriverio = require('webdriverio');26var options = { desiredCapabilities: { browserName: 'chrome' } };27 .remote(options)28 .init()29 .getTitle().then(function(title) {30 console.log('Title was: ' + title);31 })32 .end();33var webdriverio = require('webdriverio');34var options = { desiredCapabilities: { browserName: 'chrome' } };35 .remote(options)36 .init()37 .getTitle().then(function(title) {38 console.log('Title was: ' + title);39 })40 .end();41var webdriverio = require('webdriverio');42var options = { desiredCapabilities: { browserName: 'chrome' } };43 .remote(options)44 .init()45 .getTitle().then(function(title) {46 console.log('Title was: ' + title);47 })48 .end();
Using AI Code Generation
1describe('webdriver.io page', () => {2 it('should have the right title', () => {3 const title = browser.getTitle();4 expect(title).to.equal('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');5 });6});
Using AI Code Generation
1const { remote } = require('webdriverio');2(async () => {3 const browser = await remote({4 capabilities: {5 }6 })7 console.log(await browser.getTitle())8 await browser.deleteSession()9})().catch((e) => console.error(e))
Using AI Code Generation
1describe('My WebdriverIO Test', () => {2 it('should do something', () => {3 const title = browser.getTitle();4 console.log('Title was: ' + title);5 expect(title).toBe('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');6 });7});
Using AI Code Generation
1describe('webdriver.io page', () => {2 it('should have the right title', () => {3 const title = browser.getTitle();4 expect(title).toEqual('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');5 browser.pause(3000);6 });7});8describe('webdriver.io page', () => {9 it('should have the right title', () => {10 const title = browser.getTitle();11 expect(title).toEqual('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');12 browser.pause(3000);13 });14});15describe('webdriver.io page', () => {16 it('should have the right title', () => {17 const title = browser.getTitle();18 expect(title).toEqual('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');19 browser.pause(3000);20 });21});22describe('webdriver.io page', () => {23 it('should have the right title', () => {24 const title = browser.getTitle();25 expect(title).toEqual('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');26 browser.pause(3000);27 });28});
Using AI Code Generation
1const { connectBrowser } = require('webdriverio');2const browser = await connectBrowser({3 capabilities: {4 }5});6console.log(await browser.getTitle());7await browser.deleteSession();8const { remote } = require('webdriverio');9const browser = await remote({10 capabilities: {11 }12});13console.log(await browser.getTitle());14await browser.deleteSession();15const { remote } = require('webdriverio');16const browser = await remote({17 capabilities: {18 }19});20console.log(await browser.getTitle());21await browser.deleteSession();22const { remote } = require('webdriverio');23const browser = await remote({24 capabilities: {25 }26});27console.log(await
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!!