Best JavaScript code snippet using appium-xcuitest-driver
touch-e2e-specs.js
Source: touch-e2e-specs.js
...181 });182 it('should swipe on drag and drop', async function () {183 await startDragAndDropActivity();184 const el = await driver.elementById('io.appium.android.apis:id/drag_dot_1');185 const {x, y} = await el.getLocation();186 const touchActions = [187 {type: 'pointerMove', duration: 0, x: x + 30, y: y + 30},188 {type: 'pointerDown', button: 0},189 {type: 'pointerMove', duration: 100, x: x + 10, y: y + 10},190 {type: 'pointerUp', button: 0},191 ];192 await performTouchAction(touchActions);193 });194 });195 describe('touches', function () {196 let nextEl;197 beforeEach(async function () {198 await startTextSwitcherActivity();199 await driver.elementByXPath("//*[@text='0']").should.eventually.exist;...
gestures-specs.js
Source: gestures-specs.js
...248 driver.elementsByClassName('UIATableCell').then(function (els) {249 el = els[10];250 scrollOpts = { element: el.value };251 })252 .then(function () { return el.getLocation(); })253 .then(function (loc) { location1 = loc; })254 .then(function () {255 return driver.execute("mobile: scrollTo", [scrollOpts]);256 }).then(function () { return el.getLocation(); })257 .then(function (location2) {258 location2.x.should.equal(location1.x);259 location2.y.should.not.equal(location1.y);260 }).nodeify(done);261 });262 });263 describe('mobile: scroll', function () {264 var driver;265 setup(this, desired).then(function (d) { driver = d; });266 it('should scroll down and up', function (done) {267 var firstEl, location1, location2;268 driver269 .elementByClassName('UIATableCell')270 .then(function (el) { firstEl = el; return el.getLocation(); })271 .then(function (loc) { location1 = loc; })272 .then(function () {273 return driver.execute("mobile: scroll", [{direction: 'down'}]);274 })275 .then(function () { return firstEl.getLocation(); })276 .then(function (loc2) {277 location2 = loc2;278 loc2.x.should.equal(location1.x);279 loc2.y.should.not.equal(location1.y);280 })281 .then(function () {282 return driver.execute("mobile: scroll", [{direction: 'up'}]);283 })284 .then(function () { return firstEl.getLocation(); })285 .then(function (loc3) {286 loc3.x.should.equal(location2.x);287 loc3.y.should.not.equal(location2.y);288 })289 .nodeify(done);290 });291 it('should scroll down and up using element', function (done) {292 var firstEl, location1, location2, table_view;293 driver.elementByClassName('UIATableView').then(function (el) {294 table_view = el;295 })296 .elementByClassName('UIATableCell')297 .then(function (el) { firstEl = el; return el.getLocation(); })298 .then(function (loc) { location1 = loc; })299 .then(function () {300 return driver.execute("mobile: scroll", [{element: table_view.value, direction: 'down'}]);301 })302 .then(function () { return firstEl.getLocation(); })303 .then(function (loc2) {304 location2 = loc2;305 loc2.x.should.equal(location1.x);306 loc2.y.should.not.equal(location1.y);307 })308 .then(function () {309 return driver.execute("mobile: scroll", [{element: table_view.value, direction: 'up'}]);310 })311 .then(function () { return firstEl.getLocation(); })...
gesture-e2e-specs.js
Source: gesture-e2e-specs.js
...61 await exitModal('OK');62 });63 it('should tap on arbitrary coordinates', async function () {64 let el = await driver.elementByAccessibilityId('Okay / Cancel');65 let loc = await el.getLocation();66 let size = await el.getSize();67 loc = {68 x: loc.x + size.width / 2,69 y: loc.y + size.height / 2,70 };71 let action = new wd.TouchAction(driver);72 action.tap(loc);73 await action.perform();74 await exitModal('OK');75 });76 });77 it('should long press on an element', async function () {78 let el = await driver.elementByAccessibilityId('Okay / Cancel');79 let action = new wd.TouchAction(driver);80 action.longPress({el}).release();81 await action.perform();82 await exitModal('Cancel');83 });84 it('should long press on an element with duration through press-wait-release', async function () {85 let el = await driver.elementByAccessibilityId('Okay / Cancel');86 let action = new wd.TouchAction(driver);87 action.press({el}).wait(1200).release();88 await action.perform();89 await exitModal('Cancel');90 });91 it('should long press on an element with duration through pressOpts.duration', async function () {92 let el = await driver.elementByAccessibilityId('Okay / Cancel');93 let action = new wd.TouchAction(driver);94 action.longPress({el, duration: 1200}).release();95 await action.perform();96 await exitModal('Cancel');97 });98 it('should long press on arbitrary coordinates', async function () {99 let el = await driver.elementByAccessibilityId('Okay / Cancel');100 let loc = await el.getLocation();101 let size = await el.getSize();102 loc = {103 x: loc.x + size.width / 2,104 y: loc.y + size.height / 2,105 };106 let action = new wd.TouchAction(driver);107 action.press(loc).wait(500).release();108 await action.perform();109 await exitModal('OK');110 });111 });112 it('should scroll using touch actions', async function () {113 let el1 = await driver.elementByAccessibilityId('Action Sheets');114 let el2 = await driver.elementByAccessibilityId('Progress Views');...
swipe-specs.js
Source: swipe-specs.js
1"use strict";2var env = require('../../../../helpers/env')3 , setup = require("../../../common/setup-base")4 , desired = require("../desired")5 , reset = require("../reset")6 , wd = require("wd")7 , TouchAction = wd.TouchAction;8describe("apidemo - touch - swipe", function () {9 var driver;10 setup(this, desired).then(function (d) { driver = d; });11 var contentEl, animationEl, viewsEl;12 if (env.FAST_TESTS) {13 beforeEach(function () {14 return reset(driver);15 });16 }17 var _assertResultAndReset = function () {18 if (!viewsEl) {19 return driver.elementByName("Views")20 .then(function (el) {21 viewsEl = el;22 return _assertResultAndReset();23 });24 } else {25 return viewsEl.isDisplayed().should.become(true)26 .then(function () {27 return new TouchAction(driver)28 .press({el: contentEl}).wait({ms: 500}).moveTo({el: viewsEl}).release().perform()29 .elementByName("Accessibility").isDisplayed().should.become(true);30 });31 }32 };33 var x = 0, y = 0, hOffset;34 var contentElPos = { x: 0, y: 0 }35 , animationElPos = { x: 0, y: 0 }36 , delta = { x: 0, y: 0 };37 it('should properly initialize the test', function (done) {38 driver39 .elementByName("Content")40 .then(function (el) { contentEl = el; return contentEl; })41 .getLocation()42 .then(function (loc) {x = loc.x; y = loc.y; return contentEl;})43 .getSize()44 .then(function (re) {45 hOffset = re.height * 0.5;46 contentElPos.x = x + (re.width * 0.5);47 contentElPos.y = y + hOffset;48 })49 .elementByName("Animation")50 .then(function (el) {51 animationEl = el;52 return animationEl;53 })54 .getLocation()55 .then(function (loc) {56 animationElPos.x = contentElPos.x;57 animationElPos.y = loc.y + hOffset;58 delta.x = 0;59 delta.y = animationElPos.y - contentElPos.y;60 return contentEl;61 })62 .nodeify(done);63 });64 it('should work with: press {element}, moveTo {destEl}', function (done) {65 driver.chain()66 // test: press {element}, moveTo {element}67 .then(function () {68 return new TouchAction(driver)69 .press({el: contentEl}).wait({ms: 500}).moveTo({el: animationEl}).release().perform();70 })71 .then(_assertResultAndReset)72 .nodeify(done);73 });74 it('should work with: press {element, x, y}, moveTo {element, x, y}', function (done) {75 driver.chain()76 // test: press {element, x, y}, moveTo {element, x, y}77 .then(function () {78 return new TouchAction(driver)79 .press({el: contentEl, x: 20, y: 0.4}).wait({ms: 500}).moveTo({el: contentEl, x: delta.x, y: delta.y }).release().perform();80 })81 .then(_assertResultAndReset)82 .nodeify(done);83 });84 it('should work with: press {x, y}, moveTo {x, y}', function (done) {85 driver.chain()86 // test: press {x, y}, moveTo {x, y}87 .then(function () {88 return new TouchAction(driver)89 .press(contentElPos).wait({ms: 500}).moveTo(animationElPos).release().perform();90 })91 .then(_assertResultAndReset)92 .nodeify(done);93 });94 it('should work with: {element, x, y}, moveTo {destEl, x, y}', function (done) {95 driver.chain()96 // test: press {element, x, y}, moveTo {destEl, x, y}97 .then(function () {98 return new TouchAction(driver)99 .press({el: contentEl, x: 0.6, y: 35}).wait({ms: 500}).moveTo({el: animationEl, x: 25, y: 25 }).release().perform();100 })101 .then(_assertResultAndReset)102 .nodeify(done);103 });104 it("should work with press {x, y}, moveTo {destEl}", function (done) {105 driver.chain()106 // test: press {x, y}, moveTo {destEl}107 .then(function () {108 return new TouchAction(driver)109 .press(contentElPos).wait({ms: 500}).moveTo({el: animationEl}).release().perform();110 })111 .then(_assertResultAndReset)112 .nodeify(done);113 });...
test.js
Source: test.js
...63 const previews = await $$('img.file-preview')64 // Names should all be listed before previews--indicates that previews were generated asynchronously.65 /* Nevermind this, setValue() doesn't accept multiple files so they are added one by one and the thumbnails66 * have finished generating by the time we add the next.67 const nys = names.map((el) => el.getLocation('y'))68 const pys = previews.map((el) => el.getLocation('y'))69 for (const ny of nys) {70 for (const py of pys) {71 expect(ny).to.be.below(py, 'names should be listed before previews')72 }73 }74 */75 expect(previews).to.have.lengthOf(3) // ex. the invalid image76 for (const p of previews) {77 expect(await p.getAttribute('src')).to.match(/^blob:/)78 // Doesn't appear to work in Chrome 67 on Android 6.079 if (capabilities.platformName !== 'Android') {80 expect(await getWidth(p)).to.equal(200)81 }82 }...
mobile-scroll-specs.js
Source: mobile-scroll-specs.js
...7 it('should scroll down and up', function (done) {8 var firstEl, location1, location2;9 driver10 .elementByClassName('UIATableCell')11 .then(function (el) { firstEl = el; return el.getLocation(); })12 .then(function (loc) { location1 = loc; })13 .then(function () {14 return driver.execute("mobile: scroll", [{direction: 'down'}]);15 })16 .then(function () { return firstEl.getLocation(); })17 .then(function (loc2) {18 location2 = loc2;19 loc2.x.should.equal(location1.x);20 loc2.y.should.not.equal(location1.y);21 })22 .then(function () {23 return driver.execute("mobile: scroll", [{direction: 'up'}]);24 })25 .then(function () { return firstEl.getLocation(); })26 .then(function (loc3) {27 loc3.x.should.equal(location2.x);28 loc3.y.should.not.equal(location2.y);29 })30 .nodeify(done);31 });32 it('should scroll down and up using element', function (done) {33 var firstEl, location1, location2, table_view;34 driver.elementByClassName('UIATableView').then(function (el) {35 table_view = el;36 })37 .elementByClassName('UIATableCell')38 .then(function (el) { firstEl = el; return el.getLocation(); })39 .then(function (loc) { location1 = loc; })40 .then(function () {41 return driver.execute("mobile: scroll", [{element: table_view.value, direction: 'down'}]);42 })43 .then(function () { return firstEl.getLocation(); })44 .then(function (loc2) {45 location2 = loc2;46 loc2.x.should.equal(location1.x);47 loc2.y.should.not.equal(location1.y);48 })49 .then(function () {50 return driver.execute("mobile: scroll", [{element: table_view.value, direction: 'up'}]);51 })52 .then(function () { return firstEl.getLocation(); })...
scroll-to-el-specs.js
Source: scroll-to-el-specs.js
...20 driver.elementsByClassName('UIATableCell').then(function (els) {21 el = els[10];22 scrollOpts = { element: el.value };23 })24 .then(function () { return el.getLocation(); })25 .then(function (loc) { location1 = loc; })26 .then(function () {27 return driver.execute("mobile: scrollTo", [scrollOpts]);28 }).then(function () { return el.getLocation(); })29 .then(function (location2) {30 location2.x.should.equal(location1.x);31 location2.y.should.not.equal(location1.y);32 }).nodeify(done);33 });...
Using AI Code Generation
1const el = await driver.$('~myElement')2const location = await el.getLocation()3console.log('location is: ', location)4const el = await driver.$('~myElement')5const location = await el.getLocation({xOffset: 200, yOffset: 300})6console.log('location is: ', location)7const el = await driver.$('~myElement')8const location = await el.getLocationInView()9console.log('location is: ', location)10const el = await driver.$('~myElement')11const size = await el.getSize()12console.log('size is: ', size)13const el = await driver.$('~myElement')14const size = await el.getSize({widthOffset: 100, heightOffset: 200})15console.log('size is: ', size)16const el = await driver.$('~myElement')17const tagName = await el.getTagName()18console.log('tagName is: ', tagName)19const el = await driver.$('~myElement')20const text = await el.getText()21console.log('text is: ', text)22const el = await driver.$('~myElement')
Check out the latest blogs from LambdaTest on this topic:
The best agile teams are built from people who work together as one unit, where each team member has both the technical and the personal skills to allow the team to become self-organized, cross-functional, and self-motivated. These are all big words that I hear in almost every agile project. Still, the criteria to make a fantastic agile team are practically impossible to achieve without one major factor: motivation towards a common goal.
These days, development teams depend heavily on feedback from automated tests to evaluate the quality of the system they are working on.
I was once asked at a testing summit, “How do you manage a QA team using scrum?” After some consideration, I realized it would make a good article, so here I am. Understand that the idea behind developing software in a scrum environment is for development teams to self-organize.
Mobile apps have been an inseparable part of daily lives. Every business wants to be part of the ever-growing digital world and stay ahead of the competition by developing unique and stable applications.
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!!