Best JavaScript code snippet using webdriverio-monorepo
spec02.js
Source:spec02.js
...31 mainPage.whyGitHub.moveTo() //Step 232 browser.pause(2000)33 const dropDow1 = mainPage.dropDownMenuWhy.isDisplayed() //Step334 console.log("Check if dropdown menu is displayed: " + dropDow1)35 browser.reloadSession()36 })37 it('Test case #2. Mouse HOVER "Explore" ', () => {38 browser.url('https://github.com') //Step 139 browser.pause(1000)40 mainPage.explore.moveTo() //Step 241 browser.pause(2000)42 const dropDow2 = mainPage.dropDownMenuExplore.isDisplayed() //Step343 console.log("Check if dropdown menu is displayed: " + dropDow2)44 browser.reloadSession()45 })46 it('Test case #3. Mouse HOVER "Pricing" ', () => {47 browser.url('https://github.com') //Step 148 browser.pause(1000)49 mainPage.pricing.moveTo() //Step 250 browser.pause(2000)51 const dropDow3 = mainPage.dropDownMenuPricing.isDisplayed() //Step352 console.log("Check if dropdown menu is displayed: " + dropDow3)53 browser.reloadSession()54 })55 it('Test case #4. "Pricing" - "Plans" - "Join for free" ', () => {56 browser.url('https://github.com') //Step 157 browser.pause(1000)58 mainPage.pricing.moveTo() //Step 259 browser.pause(1000)60 mainPage.plansLink.click() //Step361 browser.pause(1000)62 pricingPage.joinForFree.click()63 browser.pause(1000)64 joinPage.setUserName(userName2) //Step 465 joinPage.setUserEmail(emails.generateEmail().replace(/(^")|("$)/g, '')) 66 joinPage.setUserPassword(userName3) 67 browser.pause(3000) 68 browser.reloadSession()69 })70 it('Test case #5. "Explore" - "Explore GitHub" ', () => {71 browser.url('https://github.com') //Step 172 browser.pause(1000)73 mainPage.explore.moveTo() //Step 274 browser.pause(2000)75 explorePage.exploreGitH.click() //Step476 browser.pause(2000)77 topicsPage.topicsLink.click() 78 const topic = topicsPage.topicsText.isDisplayed() //Step579 console.log("Check if <h1>Topics</h1> is displayed: " + topic)80 browser.reloadSession()81 })82 ...
PageHeader.js
Source:PageHeader.js
...30 let accessToken = CookieHelper.getAccessToken();31 let refreshToken = CookieHelper.getRefreshToken();32 if (!accessToken && refreshToken) {33 console.log('Page reloadSession');34 this.props.reloadSession(refreshToken);35 }36 }37 signOutAction() {38 this.props.showLoading();39 let thisRef = this;40 this.props.signOut().then(function (result) {41 thisRef.props.hideLoading();42 });43 }44 render() {45 return (46 <div className="appheaderPanel">47 <header className="appheader">48 {...
addToCart.test.js
Source:addToCart.test.js
...23 }, 5000, 'expect cart qty to update')24 assert.equal('Cart (2)', productDetailPage.cart.getText())25 })26 it('should add same item multiple times', () => {27 browser.reloadSession()28 browser.url('/')29 homePage.clickProduct(1)30 productDetailPage.clickAddToCartButton()31 browser.waitUntil(() => {32 return productDetailPage.cart.getText() === 'Cart (1)'33 }, 5000, 'expect cart qty to update')34 productDetailPage.clickHomePageLink()35 homePage.clickProduct(1)36 productDetailPage.clickAddToCartButton()37 browser.waitUntil(() => {38 return productDetailPage.cart.getText() === 'Cart (2)'39 }, 5000, 'expect cart qty to update')40 assert.equal('Cart (2)', productDetailPage.cart.getText())41 })42 it('product price should be the same on details page and cart screen', () => {43 browser.reloadSession()44 browser.url('/')45 homePage.clickProduct(1)46 productDetailPage.clickAddToCartButton()47 browser.waitUntil(() => {48 return productDetailPage.cart.getText() === 'Cart (1)'49 }, 5000, 'expect cart qty to update')50 productDetailPage.clickCart()51 assert.equal('1x $325.00', cartPage.productCost.getText())52 assert.equal('Sub total: $325.00', cartPage.subTotal.getText())53 })54 it('cart should not change after sign out or sign in', () => {55 browser.reloadSession()56 browser.url('/')57 homePage.clickSignInButton()58 loginPage.enterEmail('desk@desk.com')59 loginPage.enterPassword('desk1')60 loginPage.clickLoginButton()61 browser.waitUntil(() => {62 return browser.getUrl() === 'https://qw-test-store-prod.netlify.app/myaccount/'63 }, 5000, 'expect url to change')64 myaccountPage.clickHomePageLink()65 homePage.clickProduct(1)66 productDetailPage.clickAddToCartButton()67 browser.waitUntil(() => {68 return productDetailPage.cart.getText() === 'Cart (1)'69 }, 5000, 'expect cart qty to update')...
tests.js
Source:tests.js
...11 loginPage.setPass(Seed.login.password);12 loginPage.signIn();13 })14 afterEach(() => {15 browser.reloadSession();16 })17 it('should add a new workspace via left side toolbar', () => {18 addWorkspacePage.addWorkspaceButton();19 addWorkspacePage.pageElementsAreVisible();20 addWorkspacePage.setWorkspaceName(Seed.workspaces.workspaceOne);21 addWorkspacePage.nextButton();22 });23 it('should be able to cancel adding a workspace', () => {24 addWorkspacePage.addWorkspaceButton();25 addWorkspacePage.pageElementsAreVisible();26 addWorkspacePage.setWorkspaceName(Seed.workspaces.workspaceTwo);27 addWorkspacePage.backButton();28 });29 it('should add a new workspace via profile tab', () => {30 addWorkspacePage.profileTab();31 addWorkspacePage.addWorkspaceButtonProfile();32 addWorkspacePage.pageElementsAreVisible();33 addWorkspacePage.setWorkspaceName(Seed.workspaces.workspaceThree);34 addWorkspacePage.nextButton();35 });36 it('should not add a workspace with the same name', () => {37 browser.pause(1000);38 addWorkspacePage.addWorkspaceButton();39 addWorkspacePage.pageElementsAreVisible();40 addWorkspacePage.setWorkspaceName(Seed.workspaces.workspaceFour);41 addWorkspacePage.nextButton();42 const toastr = addWorkspacePage.toastr;43 expect(toastr).toHaveText('This workspace is already exists! Please, choose the other name for your workspace.');44 });45});46describe('Sign Out option', () => {47 beforeEach(() => {48 loginPage.openLoginPage();49 loginPage.setEmail(Seed.login.email);50 loginPage.setPass(Seed.login.password);51 loginPage.signIn();52 })53 afterEach(() => {54 browser.reloadSession();55 })56 it('should sign out from the app', () => {57 addWorkspacePage.profileTab();58 addWorkspacePage.signOutButton();59 });60});61describe('Create channel/direct', () => {62 beforeEach(() => {63 loginPage.openLoginPage();64 loginPage.setEmail(Seed.login.email);65 loginPage.setPass(Seed.login.password);66 loginPage.signIn();67 })68 // it('should create a channel', () => {69 // browser.url('http://chatito.xyz/');70 // const buttons = $$('button');71 // const addChannel = buttons[9];72 // addChannel.click();73 // const channelName = $('#channelName');74 // channelName.setValue('test channel');75 // const profileButtons = $$('button');76 // const createButton = profileButtons[13];77 // createButton.click();78 // browser.reloadSession();79 // });...
login.spec.js
Source:login.spec.js
...7const unregisteredEmail = "toantest02@mailinator.com";8const invalidEmail = "toantest@mailinator";9describe("TSC01: Verify that sign in functionality works", () => {10 beforeEach(async () => {11 await browser.reloadSession();12 });13 it("TC001-01: Signs in with a valid email address that is already registered", async () => {14 /*15 * @registeredEmail has been manually registered in dev env16 */17 await loginPage.loginActionWithDifferentTabs(registeredEmail);18 });19 it("TC001-02: Signs in with an invalid email address", async () => {20 await loginPage.openLoginPage();21 await loginPage.inputEmail(invalidEmail);22 expect(await loginPage.isSignInButtonDisabled()).toBeTruthy();23 expect(await loginPage.getTheErrorMessage()).toEqual("Invalid email address");24 });25 it("TC001-03: Signs in with a valid email address that is not registered yet", async () => {26 await loginPage.openLoginPage();27 await loginPage.inputEmail(unregisteredEmail);28 await loginPage.clickSignInButton();29 await loginPage.waitForGlobalLoading();30 expect(await loginPage.isSignUpTabActive()).toBeTruthy();31 expect(await loginPage.getInputEmailValue()).toEqual(unregisteredEmail);32 });33 it("TC001-04: Signs in with email address all in upper case", async () => {34 await loginPage.loginAction(registeredEmail.toUpperCase());35 });36 it("TC001-05: Signs in with email address both in upper case and lower case", async () => {37 await loginPage.loginAction(upperLowerCaseEmail);38 });39});40describe("TSC02: Verify that sign in URL works", () => {41 beforeEach(async () => {42 await browser.reloadSession();43 });44 it("TSC02-01: Check that sign in page loads", async () => {45 await loginPage.openLoginPage();46 await loginPage.loaded();47 });48});49describe("TSC03: Verify that switching tabs works", () => {50 beforeEach(async () => {51 await browser.reloadSession();52 });53 it('TC003-01: User switched tab from "Sign up" to "Sign in"', async () => {54 await loginPage.openLoginPage();55 await loginPage.clickSignUpTab();56 expect(await loginPage.isSignUpTabActive()).toBeTruthy();57 await loginPage.clickSignInTab();58 expect(await loginPage.isSignInTabActive()).toBeTruthy();59 });60});61describe("TSC04: Verify that sign out functionality works", () => {62 beforeEach(async () => {63 await browser.reloadSession();64 });65 it("TC004-01: User signs out", async () => {66 await loginPage.loginAction(registeredEmail);67 await homePage.activeDropdown();68 await homePage.clickLogout();69 await loginPage.waitForLoginPage();70 expect(await browser.getUrl()).toContain("/signin");71 });...
bindDevice.js
Source:bindDevice.js
...7const _ = require('lodash');8const { BIND_DEVICE, CHART_DATA } = require('./deviceEvent').eventName9module.exports = async function bindDeviceCallback(jsonData, sessionInfo, socket){10 const {userId, bindCode, deviceId} = jsonData11 const session = await reloadSession(sessionInfo)12 try {13 // ç¨æ·é´æåç»å®ç 对åºæåå,éè¦åæ¶å两端åé response åè¯å·²ç»æå14 let sessionUser = session.user15 let sessionDevice = session.bindDevice16 if(userId == sessionUser._id && sessionDevice.bindCode == bindCode) {17 // 让设å¤è®¾ä¸ºå·²ç»å®ç¶æ18 try {19 await DeviceModel.findOneAndUpdate({_id: deviceId}, {$set: {isBind: true}})20 //response client21 return socket.emit(BIND_DEVICE, {22 ret: 0,23 data: {deviceId}24 })25 } catch (err) {...
PageInitHoc.js
Source:PageInitHoc.js
...14 this.props.setActiveMenuItem(this.props.location.pathname);15 let accessToken = CookieHelper.getAccessToken();16 let refreshToken = CookieHelper.getRefreshToken();17 if (!accessToken && refreshToken) {18 this.props.reloadSession(refreshToken);19 } else if (!this.props.user && accessToken) {20 this.props.loadSession();21 } else if (this.props.user && !accessToken && !refreshToken) {22 this.props.showLoading();23 let thisRef = this;24 this.props.signOut().then(function (result) {25 thisRef.props.hideLoading();26 });27 }28 }29 componentWillUnmount() {30 this.props.setPageHeader([]);31 }32 render() {...
reload.js
Source:reload.js
1'use strict';2const addReload = require('lib/commands/utility/reload');3const {mkBrowser_} = require('../../../utils');4describe('"reload" command', () => {5 it('should add "reload" command', () => {6 const browser = mkBrowser_();7 addReload(browser);8 assert.calledOnceWithExactly(browser.addCommand, 'reload', sinon.match.func);9 });10 it('should call "reloadSession"', async () => {11 const browser = mkBrowser_();12 addReload(browser);13 await browser.reload();14 assert.calledOnceWithExactly(browser.reloadSession);15 });...
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = {3 desiredCapabilities: {4 }5};6 .remote(options)7 .init()8 .getTitle().then(function(title) {9 console.log('Title was: ' + title);10 })11 .end();12var webdriver = require('selenium-webdriver'),13 until = webdriver.until;14var driver = new webdriver.Builder()15 .forBrowser('chrome')16 .build();17driver.findElement(By.name('q')).sendKeys('webdriver');18driver.findElement(By.name('btnG')).click();19driver.wait(until.titleIs('webdriver - Google Search'), 1000);20driver.quit();
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = {3 desiredCapabilities: {4 }5};6 .remote(options)7 .init()8 .getTitle().then(function(title) {9 console.log('Title was: ' + title);10 })11 .end();12var webdriverio = require('webdriverio');13var options = {14 desiredCapabilities: {15 }16};17 .remote(options)18 .init()19 .getTitle().then(function(title) {20 console.log('Title was: ' + title);21 })22 .reloadSession()23 .getTitle().then(function(title) {24 console.log('Title was: ' + title);25 })26 .end();
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = { desiredCapabilities: { browserName: 'chrome' } };3var client = webdriverio.remote(options);4 .init()5 .getTitle().then(function(title) {6 console.log('Title was: ' + title);7 })8 .reloadSession()9 .getTitle().then(function(title) {10 console.log('Title was: ' + title);11 })12 .end();
Using AI Code Generation
1const webdriverio = require('webdriverio');2const options = {3 desiredCapabilities: {4 }5};6 .remote(options)7 .init()8 .reloadSession()9 .end();10const webdriver = require('selenium-webdriver');11const driver = new webdriver.Builder()12 .forBrowser('chrome')13 .build();14driver.manage().deleteAllCookies();15const webdriverio = require('webdriverio');16const options = {17 desiredCapabilities: {18 }19};20 .remote(options)21 .init()22 .reloadSession()23 .end();24const webdriverio = require('webdriverio');25const options = {26 desiredCapabilities: {27 }28};29 .remote(options)30 .init()31 .reloadSession()32 .end();33const webdriverio = require('webdriverio');34const options = {35 desiredCapabilities: {36 }37};38 .remote(options)39 .init()40 .reloadSession()41 .end();42const webdriverio = require('webdriverio');43const options = {44 desiredCapabilities: {45 }46};47 .remote(options)48 .init()49 .reloadSession()50 .end();51const webdriverio = require('webdriverio');52const options = {53 desiredCapabilities: {
Using AI Code Generation
1const webdriverio = require('webdriverio');2const options = {3 desiredCapabilities: {4 }5};6 .remote(options)7 .init()8 .getTitle().then(function(title) {9 console.log('Title was: ' + title);10 })11 .reloadSession()12 .getTitle().then(function(title) {13 console.log('Title was: ' + title);14 })15 .end();
Using AI Code Generation
1var webdriverio = require('webdriverio');2var options = {3 desiredCapabilities: {4 }5};6 .remote(options)7 .init()8 .getTitle().then(function(title) {9 console.log('Title was: ' + title);10 })11 .reloadSession()12 .getTitle().then(function(title) {13 console.log('Title was: ' + title);14 })15 .end();
Using AI Code Generation
1const webdriverio = require('webdriverio');2const options = {3 capabilities: {4 }5};6(async () => {7 const driver = await webdriverio.remote(options);8 await driver.pause(10000);9 await driver.reloadSession();10 await driver.pause(10000);11 await driver.deleteSession();12})();13{14 "scripts": {15 },16 "dependencies": {17 }18}
Using AI Code Generation
1browser.reloadSession();2browser.end();3var webdriverio = require('webdriverio');4var options = {5 desiredCapabilities: {6 }7};8var client = webdriverio.remote(options);9 .init()10 .getTitle().then(function(title) {11 console.log('Title was: ' + title);12 })13 .end();14var webdriverio = require('webdriverio');15var options = {16 desiredCapabilities: {17 }18};19var client = webdriverio.remote(options);20 .init()21 .getTitle().then(function(title) {22 console.log('Title was: ' + title);23 })24 .end();25var webdriverio = require('webdriverio');26var options = {27 desiredCapabilities: {28 }29};30var client = webdriverio.remote(options);31 .init()32 .getTitle().then(function(title) {33 console.log('Title was: ' + title);34 })35 .end();36I want to test the website on different browsers (chrome, firefox, IE) and on different OS (Windows, Mac, Linux). How do I do that?
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!!