How to use driver.tap method in Appium Android Driver

Best JavaScript code snippet using appium-android-driver

tracking-functionality.spec.js

Source:tracking-functionality.spec.js Github

copy

Full Screen

1import { CountryDetailScreenDriver } from './utils/country-detail-screen-driver'2import { initialState, reducer } from '../redux/reducer'3import { applyMiddleware, createStore } from 'redux'4import thunk from 'redux-thunk'5import { HomeScreenDriver } from './utils/home-screen-driver'6import { ASYNC_STORAGE_TRACKED_KEY } from '../strings'7import AsyncStorage from '@react-native-community/async-storage'8import covidApi from '../api/covid-api'9import { ACTIONS, setCountryTracked } from '../redux/actions'10const testCountry = {11  Country: 'Lithuania',12  CountryCode: 'LT',13  Slug: 'lithuania',14  NewConfirmed: 15,15  TotalConfirmed: 1562,16  NewDeaths: 1,17  TotalDeaths: 60,18  NewRecovered: 28,19  TotalRecovered: 1025,20  Date: '2020-05-20T09:10:49Z'21}22covidApi.getSummary = jest.fn().mockResolvedValue({ globalData: {}, countries: [testCountry] })23describe('Country tracking functionality', () => {24  let driver25  let store26  let storeDispatchSpy27  beforeEach(async () => {28    store = createStore(reducer, initialState, applyMiddleware(...[thunk]))29    storeDispatchSpy = jest.spyOn(store, 'dispatch')30    driver = new CountryDetailScreenDriver(store, { country: testCountry })31    await driver.renderAsync()32    await AsyncStorage.clear()33  })34  describe('Tests without persistence', () => {35    it('should toggle switch state on press', () => {36      expect(driver.getSwitchValue()).toBeFalsy()37      driver.tapSwitch()38      expect(driver.getSwitchValue()).toBeTruthy()39    })40    it('should change global tracking state on action dispatch', () => {41      driver.dispatchCountryTrackedState(testCountry.Slug, true)42      expect(driver.countryIsTracked(testCountry.Slug)).toBeTruthy()43    })44    it('should alter the global list of tracked countries on switch toggle', () => {45      expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()46      driver.tapSwitch() // enable47      expect(driver.countryIsTracked(testCountry.Slug)).toBeTruthy()48      driver.tapSwitch() // disable49      expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()50    })51    describe('integration with home screen', () => {52      let homeDriver53      beforeEach(async () => {54        homeDriver = new HomeScreenDriver(store)55        await homeDriver.renderAsync()56      })57      it('should display a flat list for tracked countries', () => {58        expect(homeDriver.containsTrackedCountryList()).toBeTruthy()59      })60      it('should display the country in a list when action dispatched', () => {61        expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()62        driver.dispatchCountryTrackedState(testCountry.Slug, true)63        expect(homeDriver.containsCountry(testCountry.Slug)).toBeTruthy()64      })65      it('should show a tracked country on the home screen on switch toggle', async () => {66        expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()67        driver.tapSwitch() // enable68        expect(homeDriver.containsCountry(testCountry.Slug)).toBeTruthy()69      })70    })71  })72  describe('Testing persistence', () => {73    it('should save data to async storage on state.tracked change', () => {74      const jsonSpy = jest.spyOn(JSON, 'stringify')75      const expectedSave = [testCountry.Slug]76      const expectedJson = JSON.stringify(expectedSave)77      expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()78      driver.dispatchCountryTrackedState(testCountry.Slug, true)79      expect(jsonSpy).toHaveBeenCalledWith(expectedSave)80      expect(AsyncStorage.setItem).toBeCalledWith(ASYNC_STORAGE_TRACKED_KEY, expectedJson)81    })82    it('should restore data from async storage on re-render', async () => {83      expect(driver.countryIsTracked(testCountry.Slug)).toBeFalsy()84      driver.tapSwitch()85      expect(driver.countryIsTracked(testCountry.Slug)).toBeTruthy()86      // Clear existing store87      store = createStore(reducer, initialState, applyMiddleware(...[thunk]))88      // Async storage gets fetched and set in state on home screen render89      await new HomeScreenDriver(store).renderAsync()90      expect(AsyncStorage.getItem).toHaveBeenCalledWith(ASYNC_STORAGE_TRACKED_KEY)91      await expect(driver.countryIsTracked(testCountry.Slug)).toBeTruthy()92    })93  })...

Full Screen

Full Screen

Main.js

Source:Main.js Github

copy

Full Screen

1Ext.define('HatioBB.controller.Main', {2    extend: 'Ext.app.Controller',3	requires : ['HatioBB.view.Setting', 'HatioBB.view.driver.Driver', 'HatioBB.view.vehicle.Vehicle'],4	5    config: {6		routes : {7			map : 'onMap',8			info : 'onInfo',9			incident : 'onIncident'10		},11		12        refs: {13            main: 'main',14            nav: 'nav',15            content: 'content',16			header : 'header'17        },18        control: {19			'#ext-viewport':{20				orientationchange: 'onOC'21			},22			'#content' : {23				painted : 'onHome'24			},25            'header #map' : {26                tap: 'onMap'27            },28            'header #info' : {29                tap: 'onInfo'30            },31            'header #incident' : {32                tap: 'onIncident'33            },34			'header #collapse' : {35				tap : 'onCollapse'36			},37			'header #setting' : {38				tap : 'onSetting'39			},40			'header #refresh' : {41				tap : 'onRefresh'42			},43			44			'monitor_map' : {45				drivertap : 'onMapDriverTap',46				vehicletap : 'onMapVehicleTap',47				tracktap : 'onMapTrackTap'48			},49			'monitor_info #incidents button' : {50				tap : 'onIncident'51			},52			'monitor_info image' : {53				tap : 'onImage'54			},55			'monitor_incident image' : {56				tap : 'onImage'57			},58			59			'vehicle_summary' : {60				showMap : 'onShowMap',61				showTrack : 'onShowTrack'62            },63			'driver_summary' : {64				showMap : 'onShowMap',65				showTrack : 'onShowTrack'66			}67        }68    },69	onOC : function(me, newOrient,w,h) {70		if(newOrient === 'portrait') {71			this.getNav().setDocked(null).hide();72		} else {73			this.getNav().setDocked(HatioBB.setting.get('dockPosition')).show();74		}75	},76	77	onHome : function() {78		HatioBB.nav.monitor('monitor_map');79	},80	81    onMap: function(button, e) {82		HatioBB.nav.monitor('monitor_map');83    },84	onInfo: function(button, e) {85		HatioBB.nav.monitor('monitor_info');86    },87    88	onIncident: function(comp, e) {89		var view = HatioBB.nav.monitor('monitor_incident');90		/* 여러 경로의 button동작을 통해서 들어오는 것을 감안함. */91		if(comp && comp.config && comp.config.incident)92			view.setIncident(comp.config.incident);93		else94			view.setIncident();95    },96    onCollapse : function(button, e) {97		if(this.getNav().getDocked()) {98			this.getNav().setDocked(null).hide();99		} else {100			this.getNav().setDocked(HatioBB.setting.get('dockPosition')).show();101		}102	},103	onSetting : function(button, e) {104		Ext.create('HatioBB.view.Setting', {}).showBy(button);105	},106	107	onRefresh : function(button, e) {108		var active = this.getContent().getActiveItem();109		if(typeof(active.refresh) === 'function')110			active.refresh();111	},112  	113    onMapTrackTap: function(vehicle) {114		HatioBB.nav.monitor('monitor_info');115		HatioBB.setting.set('monitoring_vehicle', vehicle.get('id'));116		HatioBB.setting.set('vehicle', vehicle.get('id'));117		HatioBB.setting.set('driver', vehicle.get('driver_id'));118    },119    onMapDriverTap: function(driver) {120		HatioBB.setting.set('driver', driver.get('id'));121		HatioBB.nav.driver();122    },123    onMapVehicleTap: function(vehicle) {124		HatioBB.setting.set('vehicle', vehicle.get('id'));125		HatioBB.nav.vehicle();126    },127	onImage : function(comp) {128		if(comp.config.itemId === 'driverImage')129			HatioBB.nav.driver();130		else131			HatioBB.nav.vehicle();132	},133    onShowMap: function(vehicle) {134		HatioBB.nav.monitor('monitor_map');135		HatioBB.setting.set('vehicle', vehicle);136    },137    onShowTrack: function(vehicle) {138		HatioBB.nav.monitor('monitor_info');139		HatioBB.setting.set('vehicle', vehicle);140    }...

Full Screen

Full Screen

touch-specs.js

Source:touch-specs.js Github

copy

Full Screen

1"use strict";2var okIfAlert = require('../../../helpers/alert').okIfAlert,3    setup = require("../../common/setup-base"),4    desired = require('./desired'),5    TouchAction = require('wd').TouchAction,6    MultiAction = require('wd').MultiAction;7describe('testapp - touch actions', function () {8  var driver;9  setup(this, desired).then(function (d) { driver = d; });10  function goToMap() {11    return driver12      .elementByXPathOrNull('//UIAMapView')13      .then(function (el) {14        if (!el) {15          return driver.elementsByClassName('UIAButton').at(5)16          .then(function (el) {17            var tap = (new TouchAction(driver)).tap({el: el});18            return driver.performTouchAction(tap);19          }).sleep(500)20          .then(function () { okIfAlert(driver); })21          .sleep(500);22        }23      });24  }25  describe('tap', function () {26    it('should tap on a specified element', function (done) {27      driver28        .elementsByClassName('UIAButton').at(3)29        .then(function (el) {30          var tap = (new TouchAction()).tap({el: el});31          return driver.performTouchAction(tap);32        }).sleep(1000).then(function () { okIfAlert(driver); })33        .elementsByClassName('UIAButton').at(3)34        .then(function (el) {35            var tap = (new TouchAction(driver)).tap({el: el});36            return tap.perform();37        }).sleep(1000).then(function () { okIfAlert(driver); })38       .nodeify(done);39    });40  });41  describe('swipe', function () {42    it('should move the page', function (done) {43      driver44        .resolve(goToMap())45        .elementByXPath('//UIAMapView')46        .then(function (el) {47          return driver.performTouchAction((new TouchAction())48            .press({el: el}).moveTo({el: el, x: 0, y: 100 }).release());49        }).sleep(5000)50        .nodeify(done);51    });52  });53  describe('wait', function () {54    it('should move the page and wait a bit', function (done) {55      driver56        .resolve(goToMap())57        .elementByXPath('//UIAMapView')58        .then(function (el) {59          return driver.performTouchAction(60            new TouchAction().press({el: el}).moveTo({el: el, x: 0, y: 100 })61              .wait({ ms: 5000 }).moveTo({el: el, x: 0, y: 0 }).release());62        }).sleep(5000)63        .nodeify(done);64    });65  });66  describe('pinch', function () {67    it('should do some pinching', function (done) {68      driver69        .resolve(goToMap())70        .elementByXPath('//UIAMapView')71        .then(function (el) {72          var multiAction = (new MultiAction()).add(73            (new TouchAction()).press({el: el}).moveTo({el: el, x: 0, y: 0 }).release(),74            (new TouchAction()).press({el: el}).moveTo({el: el, x: 100, y: 100 }).release()75          );76          return driver77            .performMultiAction(multiAction);78        })79        .sleep(5000)80        .nodeify(done);81    });82    it('should do more involved pinching in and out', function (done) {83      driver84        .resolve(goToMap())85        .elementByXPath('//UIAMapView')86        .then(function (el) {87          var multiAction = (new MultiAction()).add(88            (new TouchAction()).press({el: el}).moveTo({el: el, x: 25, y: 25 })89              .wait(3000).moveTo({el: el, x: 100, y: 100 }).release(),90            (new TouchAction()).press({el: el}).moveTo({el: el, x: 100, y: 0 })91              .wait({ ms: 3000 }).moveTo({el: el, x: 0, y: 0 }).release()92          );93          return driver.performMultiAction(multiAction);94        })95        .sleep(5000)96        .nodeify(done);97    });98  });...

Full Screen

Full Screen

myset.js

Source:myset.js Github

copy

Full Screen

1var frame = require("ui/frame");2var Observable = require("data/observable").Observable;3var cache = require("nativescript-cache");4var observable_1 = require("data/observable");5var api = require('../../../shared/api');6var config = require("../../../shared/config");7var areaLabel;8var portrait; //用户头像9function onBackTap(args) {10    frame.topmost().goBack();11}12exports.loaded = function (args) {13    page = args.object.page;14    page = args.object.page;15    var portrait = page.getViewById("portrait");16    var userInfo = cache.get("userInfo");17    if (userInfo) { 18        var info = JSON.parse(userInfo);19        portrait.src = info["portrait"];20    }21    "已选省5、市8、区52";22    areaLabel = args.object.getViewById("selectedAreaLabel");23    areaLabel.bindingContext = new observable_1.Observable({24        selectedAreaText: ""25    });26    // queryAreaNum();27}28// function queryAreaNum(){29//     api.call(config.apiUrl,{30//         name:"",31//     }).ok().fail();32// }33function onBackTap(args) {34    frame.topmost().goBack();35}36/**更换头像 */37function onChange(args) {38    var navigationEntry = {39        moduleName: 'views/my/changehead/changehead',40    }41    frame.topmost().navigate(navigationEntry)42}43/**实名认证 */44function onDriverTap(args) {45    api.call(config.apiUrl, {46        name: "userController.queryIfUserIdAuth",47        args: []48    }).ok(data => {49        var whetherAuth = new Observable({50            authState: data.result.hasIdentify51        });52        var navigationEntry = {53            moduleName: 'views/my/driver/driver',54        };55        var navigationEntryAuthed = {56            moduleName: 'views/my/driver_message/driver_message',57        };58        if (whetherAuth.authState) {59            frame.topmost().navigate(navigationEntryAuthed)60        } else {61            frame.topmost().navigate(navigationEntry)62        }63    }).fail(failed => {64    });65    // var navigationEntry = {66    //     moduleName: 'views/my/driver/driver',67    // };68    // var navigationEntryAuthed = {69    //     moduleName: 'views/my/driver_message/driver_message',70    // };71    // if (whetherAuth.authState) {72    //     frame.topmost().navigate(navigationEntryAuthed)73    // } else {74    //     frame.topmost().navigate(navigationEntry)75    // }76}77/**服务地区 */78function onCityTap(args) {79    var navigationEntry = {80        moduleName: 'views/my/city_select_two/city_select_two',81        backstackVisible: false82    }83    frame.topmost().navigate(navigationEntry)84}85/**服务类型 */86function onServiceTypeTap(args) {87    var navigationEntry = {88        moduleName: 'views/my/server_type/server_type',89        context: {90            updateRightNow: true91        }92        // backstackVisible: false93    }94    frame.topmost().navigate(navigationEntry)95}96/**增值服务 */97function onIncrementServiceTap(args) {98    var navigationEntry = {99        moduleName: 'views/my/server_increment/server_increment',100        // backstackVisible: false101    }102    frame.topmost().navigate(navigationEntry)103}104exports.onBackTap = onBackTap105exports.onChange = onChange106exports.onDriverTap = onDriverTap107exports.onCityTap = onCityTap108exports.onServiceTypeTap = onServiceTypeTap...

Full Screen

Full Screen

tools.js

Source:tools.js Github

copy

Full Screen

1// Copyright (c) 2019 by Audere2//3// Use of this source code is governed by an LGPL-3.0 license that4// can be found in the LICENSE file distributed with this file.5import wd from "wd";6import strings from "../../../src/i18n/locales/en.json";7import { multi_tap } from "./navigation";8import { Op } from "sequelize";9import axios from "axios";10//Go to version menu, change to demo mode (if specified), return installation id11export async function app_setup_for_automation(driver, deviceInfo, isDemo) {12  expect(await driver.hasElementByAccessibilityId("flu@home")).toBe(true);13  await new wd.TouchAction(driver)14    .tap({ x: deviceInfo.SCREEN_X * 0.95, y: deviceInfo.SCREEN_Y * 0.06 })15    .perform();16  expect(await driver.hasElementByAccessibilityId(strings.Version.title)).toBe(17    true18  );19  await driver.elementByAccessibilityId(strings.Version.title).click();20  expect(21    await driver.hasElementByAccessibilityId(strings.Version.description)22  ).toBe(true);23  if (isDemo) {24    await multi_tap(25      driver,26      deviceInfo,27      deviceInfo.SCREEN_X * 0.5,28      deviceInfo.SCREEN_Y * 0.13,29      330    );31    expect(await driver.hasElementByAccessibilityId("Demo Mode")).toBe(true);32  }33  let installation;34  while (!installation) {35    await driver36      .elementByAccessibilityId(strings.buildInfo.copy.toUpperCase())37      .click();38    const versionInfo = Buffer.from(39      await driver.getClipboard(),40      "base64"41    ).toString();42    installation = /Installation:\*\* (.*)/.exec(versionInfo);43  }44  await new wd.TouchAction(driver)45    .tap({ x: deviceInfo.SCREEN_X * 0.05, y: deviceInfo.SCREEN_Y * 0.06 })46    .perform();47  if (isDemo) {48    expect(await driver.hasElementByAccessibilityId("Demo Mode")).toBe(true);49  }50  return installation[1];51}52//Display stats from previous RDT capture53export async function display_rdt_stats(driver, models, installationId) {54  await driver.sleep(5000); // Let firestore sync55  const response = await axios.get(56    "http://localhost:3200/api/import/coughDocuments"57  );58  if (response.status !== 200) {59    throw new Error(`Expected 200, got ${response.status}`);60  }61  const dbRowsAndNum = await models.survey.findAndCountAll({62    where: {63      device: {64        installation: {65          [Op.eq]: installationId,66        },67      },68    },69    order: [["id", "ASC"]],70  });71  //gets most recent row with same installationId72  const dbRow = dbRowsAndNum["rows"][dbRowsAndNum["count"] - 1];73  if ("rdtReaderResult" in dbRow.survey.rdtInfo) {74    console.log(dbRow.survey.rdtInfo);75  }...

Full Screen

Full Screen

trivia.js

Source:trivia.js Github

copy

Full Screen

1import driver from '../driver';2import capabilities from '../capabilities';3import waitForElement from '../waitForElement';4// eslint-disable-next-line no-undef5jasmine.DEFAULT_TIMEOUT_INTERVAL = 120000;6describe('HomeScreen', () => {7  beforeAll(async () => {8    await driver.init(capabilities);9  });10  afterAll(async () => {11    await driver.quit();12  });13  it('load the app', async () => {14    const homeScreen = await waitForElement('home-screen');15    expect(homeScreen).toBeDefined();16  });17  it('start the trivia', async () => {18    const startPlayingButton = await waitForElement('start-playing-button');19    expect(startPlayingButton).toBeDefined();20    await driver.tapElement(startPlayingButton);21    const triviaScreen = await waitForElement('trivia-screen');22    expect(triviaScreen).toBeDefined();23  });24  it('answer the 5 questions', async () => {25    for (let i = 0; i < 5; i++) {26      const answerOptionButton = await waitForElement('answer-option');27      expect(answerOptionButton).toBeDefined();28      await driver.tapElement(answerOptionButton);29      await driver.sleep(1000);30    }31    const triviaResultScreen = await waitForElement('trivia-result-screen');32    expect(triviaResultScreen).toBeDefined();33  });34  it('restarts trivia', async () => {35    const restartTriviaButton = await waitForElement('restart-trivia-button');36    expect(restartTriviaButton).toBeDefined();37    await driver.tapElement(restartTriviaButton);38    const homeScreen = await waitForElement('home-screen');39    expect(homeScreen).toBeDefined();40  });...

Full Screen

Full Screen

tracking.spec.js

Source:tracking.spec.js Github

copy

Full Screen

1import { e2eDriver } from './utils/e2e-driver'2describe('Tracking functionality', () => {3  beforeEach(async () => {4    await device.uninstallApp()5    await device.installApp()6    await e2eDriver.relaunchApp()7  })8  const countrySlug = 'afghanistan'9  it('should show the tracked country on the home screen', async () => {10    await e2eDriver.openCountriesTab()11    await e2eDriver.tapOnCountryInList(countrySlug)12    await e2eDriver.toggleSwitch()13    await e2eDriver.openHomeTab()14    await e2eDriver.expectCountryCardToBeVisible(countrySlug)15  })16  it('should save the tracked list of items with app relaunch (persistence)', async () => {17    await e2eDriver.openCountriesTab()18    await e2eDriver.tapOnCountryInList(countrySlug)19    await e2eDriver.toggleSwitch()20    await e2eDriver.openHomeTab()21    await e2eDriver.expectCountryCardToBeVisible(countrySlug)22    await e2eDriver.relaunchApp()23    await e2eDriver.expectCountryCardToBeVisible(countrySlug)24  })...

Full Screen

Full Screen

driver_type.js

Source:driver_type.js Github

copy

Full Screen

1var frame = require("ui/frame")2function onBackTap(args) {3    frame.topmost().goBack();4}5function onDriverTap(args) {6   var navigationEntry = {7        moduleName: 'views/my/driver/driver',8    }9    frame.topmost().navigate(navigationEntry)10}11function onDriverCPTap(args) {12   var navigationEntry = {13        moduleName: 'views/my/driver_company/driver_company',14    }15    frame.topmost().navigate(navigationEntry)16}17function onHelp(args) {18    var thisPage = args.object.page;19    thisPage.showModal('/views/my/views/phoneModal',  function () {20    });21}22exports.onBackTap = onBackTap;23exports.onDriverTap = onDriverTap;24exports.onDriverCPTap = onDriverCPTap;...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var webdriver = require('selenium-webdriver');2driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');3driver.findElement(webdriver.By.name('btnG')).click();4driver.findElement(webdriver.By.id('resultStats')).getText().then(function(textValue) {5  console.log(textValue);6});7driver.quit();8Starting ChromeDriver (v2.8.0) on port 95159About 2,170,000,000 results (0.28 seconds)10var capabilities = {11};12info: Welcome to Appium v0.10.0 (REV 8c2b6e3f3d0b9

Full Screen

Using AI Code Generation

copy

Full Screen

1var wd = require('wd');2var assert = require('assert');3var desired = {4};5  .init(desired)6  .then(function () {7  })8  .then(function (el) {9    return driver.tap(el);10  })11  .fin(function () { return driver.quit(); })12  .done();13info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":{"ELEMENT":"1"},"status":0}14info: [debug] Responding to client with success: {"status":0,"value":{"ELEMENT":"1"},"sessionId":"7b8e3f3d-5a5b-4c7c-9e5a-7d9e2c0f7b2c"}15info: <-- POST /wd/hub/session/7b8e3f3d-5a5b-4c7c-9e5a-7d9e2c0f7b2c/element 200 136.628 ms - 87 {"status":0,"value":{"ELEMENT":"1"},"

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Appium Android Driver automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful