Best JavaScript code snippet using appium
getDeviceInfo.test.js
Source: getDeviceInfo.test.js
1import {IMAGE_STRING} from '../mocks/mocks'2import * as Utils from '../../lib/helpers/utils'3describe('getDeviceInfo', () => {4 let determineIphoneXSeriesSpy, determineLargeIphoneXSeriesSpy, getDeviceInfo, getScreenshotSizeSpy5 const screenData = {6 width: 10,7 height: 20,8 }9 beforeEach(() => {10 jest.isolateModules(() => {11 getDeviceInfo = require('../../lib/methods/getDeviceInfo').getDeviceInfo12 })13 delete global.driver14 global.driver = {15 capabilities:{},16 getWindowSize: jest.fn().mockResolvedValue(screenData),17 }18 getScreenshotSizeSpy = jest.spyOn(Utils, 'getScreenshotSize').mockReturnValue({19 width: 1000,20 height: 2000,21 })22 })23 afterEach(() => {24 global.driver = {25 getWindowSize: jest.fn().mockRestore(),26 }27 determineIphoneXSeriesSpy.mockRestore()28 determineLargeIphoneXSeriesSpy.mockRestore()29 getScreenshotSizeSpy.mockRestore()30 })31 it('should be able to get the default device info for the initial run', async () => {32 determineIphoneXSeriesSpy = jest.spyOn(Utils, 'determineIphoneXSeries').mockReturnValue(false)33 determineLargeIphoneXSeriesSpy = jest.spyOn(Utils, 'determineLargeIphoneXSeries').mockReturnValue(false)34 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()35 expect(getScreenshotSizeSpy).toBeCalledWith(IMAGE_STRING)36 expect(global.driver.getWindowSize).toHaveBeenCalled()37 expect(determineIphoneXSeriesSpy).toBeCalledWith(screenData)38 expect(determineLargeIphoneXSeriesSpy).toBeCalledWith(screenData)39 })40 it('should be able to get the default device info for the second run', async () => {41 determineIphoneXSeriesSpy = jest.spyOn(Utils, 'determineIphoneXSeries').mockReturnValue(false)42 determineLargeIphoneXSeriesSpy = jest.spyOn(Utils, 'determineLargeIphoneXSeries').mockReturnValue(false)43 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()44 expect(getScreenshotSizeSpy).toBeCalledWith(IMAGE_STRING)45 expect(global.driver.getWindowSize).toHaveBeenCalled()46 expect(determineIphoneXSeriesSpy).toBeCalledWith(screenData)47 expect(determineLargeIphoneXSeriesSpy).toBeCalledWith(screenData)48 getScreenshotSizeSpy.mockRestore()49 determineIphoneXSeriesSpy.mockRestore()50 determineLargeIphoneXSeriesSpy.mockRestore()51 global.driver = {52 getWindowSize: jest.fn().mockRestore(),53 }54 // The second run to check that the data is stored in the `DEVICE_INFO` and all methods are not called again55 global.driver = {56 getWindowSize: jest.fn().mockResolvedValue(screenData),57 }58 getScreenshotSizeSpy = jest.spyOn(Utils, 'getScreenshotSize').mockReturnValue({59 width: 1000,60 height: 2000,61 })62 determineIphoneXSeriesSpy = jest.spyOn(Utils, 'determineIphoneXSeries').mockReturnValue(false)63 determineLargeIphoneXSeriesSpy = jest.spyOn(Utils, 'determineLargeIphoneXSeries').mockReturnValue(false)64 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()65 expect(getScreenshotSizeSpy).not.toHaveBeenCalled()66 expect(global.driver.getWindowSize).not.toHaveBeenCalled()67 expect(determineIphoneXSeriesSpy).not.toHaveBeenCalled()68 expect(determineLargeIphoneXSeriesSpy).not.toHaveBeenCalled()69 })70 it('should be able to get the device info for an iPhone X', async () => {71 determineIphoneXSeriesSpy = jest.spyOn(Utils, 'determineIphoneXSeries').mockReturnValue(true)72 determineLargeIphoneXSeriesSpy = jest.spyOn(Utils, 'determineLargeIphoneXSeries').mockReturnValue(false)73 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()74 })75 it('should be able to get the device info for an iPhone X Large', async () => {76 determineIphoneXSeriesSpy = jest.spyOn(Utils, 'determineIphoneXSeries').mockReturnValue(false)77 determineLargeIphoneXSeriesSpy = jest.spyOn(Utils, 'determineLargeIphoneXSeries').mockReturnValue(true)78 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()79 })80 it('should be able to get the device info for a landscape phone', async () => {81 global.driver = {82 capabilities: {},83 getWindowSize: jest.fn().mockResolvedValue({84 width: 1000,85 height: 500,86 }),87 }88 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()89 })90 it('should be able to get the device info an Android phone', async () => {91 global.driver = {92 capabilities: {93 pixelRatio: 2.75,94 statBarHeight: 66,95 viewportRect: { left: 0, top: 66, width: 1000, height: 1802 }96 },97 getWindowSize: jest.fn().mockResolvedValue({98 width: 1000,99 height: 2000,100 }),101 }102 expect(await getDeviceInfo(IMAGE_STRING)).toMatchSnapshot()103 })...
TC_018_OrderScreen.js
Source: TC_018_OrderScreen.js
...11 12 })13 it('Swipe vertically', () => {14 /********SWIPE SCREEN VERTICALLY *******/15 const {height} = driver.getWindowSize();16 const anchorPercentage = 50;17 const startPointPercentage = 90;18 const endPointPercentage = 10;19 const anchor = height * anchorPercentage / 100;20 const startPoint = height * startPointPercentage / 100;21 const endPoint = height * endPointPercentage / 100;22 driver.touchPerform([23 {24 action: 'press',25 options: {26 x: anchor,27 y: startPoint28 }29 },30 {31 action: 'wait',32 options: {33 ms: 100034 }35 },36 {37 action: 'moveTo',38 options: {39 x: anchor,40 y: endPoint41 }42 },43 {44 action: 'release',45 options: {46 }47 }48 ])49 /**********************************/50 })51 it('Click tour item', () => {52 HomeScreen.clickOnImageListTourItem();53 54 browser.pause(2000);55 })56 it('Check total payment with another adults number and children number without discount', () => {57 DetailTour.increaseChildrenNumber().increaseAdultsNumber().clickOnButtonBookTour();58 })59 it('Swipe vertically', () => {60 /********SWIPE SCREEN VERTICALLY *******/61 const {height} = driver.getWindowSize();62 const anchorPercentage = 50;63 const startPointPercentage = 90;64 const endPointPercentage = 10;65 const anchor = height * anchorPercentage / 100;66 const startPoint = height * startPointPercentage / 100;67 const endPoint = height * endPointPercentage / 100;68 driver.touchPerform([69 {70 action: 'press',71 options: {72 x: anchor,73 y: startPoint74 }75 },...
all-screens.js
Source: all-screens.js
...38 world.swipeLeft = swipeLeft;39 world.archive = new ArchiveScreen( world );40}41async function swipeRight( world, { start_x=30, end_x=0.95 } = {} ) {42 let size = await world.driver.getWindowSize();43 await world.driver.touchAction([ 44 {action: 'press', x: start_x, y: size.height/2},45 {action: 'wait', ms: 1000 },46 {action: 'moveTo', x: size.width*end_x, y: size.height/2},47 'release']);48}49async function swipeLeft(world) {50 let size = await world.driver.getWindowSize();51 await world.driver.touchPerform([ 52 {action: 'press', x: size.width*0.60, y: size.height/2},53 {action: 'wait', ms: 1000 },54 {action: 'moveTo', x: 4, y: size.height/2},55 {action:'release'}]);56}57exports.setUpWorld = setUpWorld;...
List-Performance-test.e2e.js
Source: List-Performance-test.e2e.js
...14 });15 afterAll(async () => await driver.quit());16 test('render home screen Android ', async () => {17 // let list = await driver.elementByAccessibilityId('long_list');18 // var size = await driver.getWindowSize();19 // var starty = size.height * 0.8;20 // var endy = size.height * 0.2;21 // var startx = size.width / 2;22 // driver.swipe(startx, starty, startx, endy, 3000);23 // //let list = await driver.getElementById('long_list');24 // var isVisible = false;25 // while (!isVisible) {26 // await driver.execute('mobile: swipe', {element: list, direction: 'up'});27 // //await driver.execute('mobile: scroll', {direction: 'down'});28 // }29 var isVisible = false;30 while (!isVisible) {31 var size = await driver.getWindowSize();32 var starty = size.height * 0.8;33 var endy = size.height * 0.2;34 var touchAction = new wd.TouchAction(driver)35 .longPress({x: 0, y: starty})36 .moveTo({x: 0, y: endy})37 .release();38 await touchAction.perform();39 await driver.sleep(1210);40 }41 let item0 = await driver.elementByAccessibilityId('0');42 expect(await item0.text()).toBe('0');43 });44 // test('render home screen ios ', async () => {45 // let list = await driver.elementByAccessibilityId('long_list');...
device-specs.js
Source: device-specs.js
1import { IosDriver } from '../../lib/driver';2import { uiauto } from '../..';3import chai from 'chai';4import chaiAsPromised from 'chai-as-promised';5import sinon from 'sinon';6chai.should();7chai.use(chaiAsPromised);8const PLUS_HEIGHT = 736;9const NONPLUS_HEIGHT = 568;10describe('device pixel ratio', function () {11 let driver;12 beforeEach(function () {13 driver = new IosDriver();14 });15 it('pixel ratio should equal 2 with non plus device', async function () {16 sinon.stub(driver, 'getWindowSize').returns({width: 1000, height: NONPLUS_HEIGHT});17 let pixelRatio = await driver.getDevicePixelRatio();18 pixelRatio.should.equal(2);19 });20 it('pixel ratio should equal 3 with plus device', async function () {21 sinon.stub(driver, 'getWindowSize').returns({width: 1000, height: PLUS_HEIGHT});22 let pixelRatio = await driver.getDevicePixelRatio();23 pixelRatio.should.equal(3);24 });25});26describe('status bar height', function () {27 it('should invoke correct command', async function () {28 let driver = new IosDriver();29 driver.uiAutoClient = new uiauto.UIAutoClient();30 sinon.stub(driver.uiAutoClient, 'sendCommand')31 .withArgs('UIATarget.localTarget().frontMostApp().statusBar().rect().size.height;')32 .returns(24);33 await driver.getStatusBarHeight().should.eventually.eql(24);34 });35});36describe('viewport rect', function () {37 it('should return the viewport rect without statusbar height', async function () {38 let driver = new IosDriver();39 sinon.stub(driver, 'getDevicePixelRatio').returns(3.0);40 sinon.stub(driver, 'getStatusBarHeight').returns(24);41 sinon.stub(driver, 'getWindowSize').returns({width: 320, height: 568});42 let viewportRect = await driver.getViewportRect();43 viewportRect.left.should.equal(0);44 viewportRect.top.should.equal(24 * 3);45 viewportRect.width.should.equal(320 * 3);46 viewportRect.height.should.equal(568 * 3 - 72);47 });...
swipeVertical.js
Source: swipeVertical.js
...5 const FORM_COMPONENT = "~Forms-screen"6 // 0. click on Forms icon button7 $(FORM_ICON).click()8 // 1. Swipe up screen vertically9 const { width, height } = driver.getWindowSize()10 console.log(driver.getWindowSize())11 const anchorPercentage = 50 //50% * width12 const startPointPercentage = 90 // 90% * height13 const endPointPercentage = 10 // 10% * height14 const anchor = anchorPercentage * width / 10015 const startPoint = startPointPercentage * height / 10016 const endPoint = endPointPercentage * height / 10017 // Touch on screen before doing touch18 $(FORM_COMPONENT).click()19 // Press on start point, wait 1s, moveTo endPoint , release20 driver.touchPerform([21 {22 action: 'press',23 options: {24 x: anchor,...
pickMenuItem.js
Source: pickMenuItem.js
1import wd from 'wd';2export default async (driver, PlatformOS) => {3 if (PlatformOS === 'ios') {4 const action = new wd.TouchAction(driver);5 let {height} = await driver.getWindowSize();6 await driver.sleep(1000);7 await action8 .press({x: 50, y: height - 10})9 .wait(1000)10 .moveTo({x: 50, y: height - 80})11 .release();12 await action.perform();13 await driver.waitForElementByXPath(14 "//XCUIElementTypeOther[@name='Done']",15 8000,16 );17 const Done = await driver.elementByXPath(18 "//XCUIElementTypeOther[@name='Done']",19 );...
Screen.js
Source: Screen.js
...3 * Get device screen width4 * @returns {Number} width5 */6 async getWidth() {7 return (await driver.getWindowSize())['width'];8 };9 /**10 * Get device screen height11 * @returns {Number} height12 */13 async getHeight() {14 return (await driver.getWindowSize())['height'];15 };16 /**17 * Perform tap by coordinates18 * @param {Number} x coordinate19 * @param {Number} y coordinate20 * @param {Number} timeout for execution comand. Default: 500ms21 */22 async performTapByCoordinates(x ,y, timeout = 500) {23 await driver.touchPerform([24 { action: 'tap', options: { x: x, y: y } },25 { action: 'release' }26 ]);27 await browser.pause(timeout);28 };...
Using AI Code Generation
1var webdriver = require('selenium-webdriver'),2 until = webdriver.until;3var driver = new webdriver.Builder()4 .forBrowser('chrome')5 .build();6driver.findElement(By.name('q')).sendKeys('webdriver');7driver.findElement(By.name('btnG')).click();8driver.wait(until.titleIs('webdriver - Google Search'), 1000);9driver.quit();10driver.getWindowSize().then(function(size){11 console.log(size);12});13driver.setWindowSize(500, 500).then(function(){14 console.log("Window size changed");15});16driver.getOrientation().then(function(orientation){17 console.log(orientation);18});19driver.setOrientation("LANDSCAPE").then(function(){20 console.log("Orientation changed");21});22driver.getNetworkConnection().then(function(networkConnection){23 console.log(networkConnection);24});25driver.setNetworkConnection(6).then(function(){26 console.log("Network connection changed");27});28driver.getGeoLocation().then(function(geoLocation){29 console.log(geoLocation);30});31driver.setGeoLocation({latitude: 40.7143528, longitude: -74.0059731, altitude: 1}).then(function(){32 console.log("Geo location changed");33});34driver.getDeviceTime().then(function(deviceTime){35 console.log(deviceTime);36});37driver.getDeviceTime().then(function(deviceTime){38 console.log(deviceTime);39});40driver.hideKeyboard("Done").then(function(){41 console.log("Keyboard hidden");42});43driver.isKeyboardShown().then(function(isKeyboardShown){44 console.log(isKeyboardShown);45});46driver.lock(5).then(function(){
Using AI Code Generation
1var webdriver = require('selenium-webdriver');2var driver = new webdriver.Builder()3 .forBrowser('chrome')4 .build();5driver.getWindowSize().then(function(size) {6 console.log(size);7 driver.quit();8});9driver.getWindowSize()10driver.manage().window().getSize()11driver.manage().window().getRect()12driver.manage().window().getPosition()13driver.manage().window().getRect()14driver.manage().window().maximize()15driver.manage().window().fullscreen()16driver.manage().window().setPosition()17driver.manage().window().setRect()18driver.manage().window().setSize()19driver.manage().window().setRect()20driver.manage().window().maximize()21driver.manage().window().fullscreen()22driver.manage().window().setPosition()23driver.manage().window().setRect()24driver.manage().window().setSize()25driver.manage().window().setRect()26driver.manage().window().maximize()27driver.manage().window().fullscreen()28driver.manage().window().setPosition()29driver.manage().window().setRect()
Using AI Code Generation
1const {Builder, By, Key, until} = require('selenium-webdriver');2const {Options} = require('selenium-webdriver/chrome');3const {Driver} = require('selenium-webdriver/chrome');4const {ServiceBuilder} = require('selenium-webdriver/chrome');5async function example() {6 let options = new Options();7 options.addArguments("disable-infobars");8 options.addArguments("disable-extensions");9 options.addArguments("disable-notifications");10 options.addArguments("disable-popup-blocking");11 options.addArguments("disable-translate");12 options.addArguments("disable-web-security");13 options.addArguments("no-sandbox");14 options.addArguments("start-maximized");15 options.addArguments("test-type");16 options.addArguments("ignore-certificate-errors");17 options.addArguments("disable-gpu");18 options.addArguments("disable-dev-shm-usage");19 options.addArguments("disable-software-rasterizer");20 options.addArguments("disable-features=VizDisplayCompositor");21 options.addArguments("disable-features=NetworkService");22 options.addArguments("disable-features=VizDisplayCompositor");23 options.addArguments("disable-features=NetworkService");24 options.addArguments("enable-features=NetworkServiceInProcess");25 options.addArguments("enable-features=VizDisplayCompositor");26 options.addArguments("disable-features=VizDisplayCompositor");27 options.addArguments("disable-features=NetworkService");28 options.addArguments("enable-features=NetworkServiceInProcess");29 options.addArguments("enable-features=VizDisplayCompositor");30 options.addArguments("disable-features=VizDisplayCompositor");31 options.addArguments("disable-features=NetworkService");32 options.addArguments("enable-features=NetworkServiceInProcess");33 options.addArguments("enable-features=VizDisplayCompositor");34 options.addArguments("disable-features=VizDisplayCompositor");35 options.addArguments("disable-features=NetworkService");36 options.addArguments("enable-features=NetworkServiceInProcess");37 options.addArguments("enable-features=VizDisplayCompositor");38 options.addArguments("disable-features=VizDisplayCompositor");39 options.addArguments("disable-features=NetworkService");40 options.addArguments("enable-features=NetworkServiceInProcess");41 options.addArguments("enable-features=Viz
Using AI Code Generation
1var webdriver = require('selenium-webdriver');2var driver = new webdriver.Builder().forBrowser('chrome').build();3driver.getWindowSize().then(function(size) {4console.log(size);5});6var webdriver = require('selenium-webdriver');7var driver = new webdriver.Builder().forBrowser('chrome').build();8driver.manage().window().getSize().then(function(size) {9console.log(size);10});
Using AI Code Generation
1describe('Test', function() {2 it('should get window size', function() {3 return driver.getWindowSize();4 });5});6describe('Test', function() {7 it('should set window size', function() {8 return driver.setWindowSize(400, 500);9 });10});11describe('Test', function() {12 it('should get orientation', function() {13 return driver.getOrientation();14 });15});16describe('Test', function() {17 it('should set orientation', function() {18 return driver.setOrientation('LANDSCAPE');19 });20});21describe('Test', function() {22 it('should get location', function() {23 return driver.getGeoLocation();24 });25});26describe('Test', function() {27 it('should set location', function() {28 return driver.setGeoLocation(40, 50);29 });30});31describe('Test', function() {32 it('should get network connection', function() {33 return driver.getNetworkConnection();34 });35});36describe('Test', function() {37 it('should set network connection', function() {38 return driver.setNetworkConnection(2);39 });40});41describe('Test', function() {42 it('should get available log types', function() {43 return driver.getAvailableLogTypes();44 });45});46describe('Test', function() {47 it('should get logs', function() {48 return driver.getLogs('logcat');49 });50});51describe('Test', function() {52 it('should get performance data types', function() {53 return driver.getPerformanceDataTypes();54 });55});56describe('Test', function() {57 it('should get performance data', function() {58 return driver.getPerformanceData('com.android.chrome', 'cpuinfo', 1000);
Check out the latest blogs from LambdaTest on this topic:
Every software-based business wants to ensure that automation testing and DevOps go hand in hand for a continuous testing process. Be it a small scale business or a large scale enterprise, we understand how indispensable these two have become for a hassle-free SDLC for any business. To assist you in streamlining the entire process, we have now partnered and integrated with QMetry.
At the start of 2019, we made live, the first release of LambdaTest online Selenium Grid with 3000+ Desktop browser and operating system combinations. It gave you the ability to automate your cross browser testing experience and deliver a seamless website to your audience, faster than before.
So you are at the beginning of 2020 and probably have committed a new year resolution as a tester to take a leap from Manual Testing To Automation . However, to automate your test scripts you need to get your hands dirty on a programming language and that is where you are stuck! Or you are already proficient in automation testing through a single programming language and are thinking about venturing into new programming languages for automation testing, along with their respective frameworks. You are bound to be confused about picking your next milestone. After all, there are numerous programming languages to choose from.
This article is a part of our Content Hub. For more in-depth resources, check out our content hub on Selenium Python Tutorial.
Being an automation tester, we do realize that in a release cycle, time is always of the essence.! Selenium test automation helps to save us a considerable amount of time in our test cycles. However, it is pivotal to note the way through which you are executing your Selenium testing scripts. Which frameworks are you using? Are you doing it with an in-house infrastructure or with an online Selenium Grid? Are you making use of build automation tools or not?!
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!