How to use driver.touchId method in Appium Xcuitest Driver

Best JavaScript code snippet using appium-xcuitest-driver

js-wd.js

Source:js-wd.js Github

copy

Full Screen

...169  codeFor_getSupportedPerformanceDataTypes () {170    return `let supportedPerformanceDataTypes = await driver.getSupportedPerformanceDataTypes();`;171  }172  codeFor_performTouchId (varNameIgnore, varIndexIgnore, match) {173    return `await driver.touchId(${match});`;174  }175  codeFor_toggleTouchIdEnrollment (varNameIgnore, varIndexIgnore, enroll) {176    return `await driver.toggleTouchIdEnrollment(${enroll});`;177  }178  codeFor_openNotifications () {179    return `await driver.openNotifications();`;180  }181  codeFor_getDeviceTime () {182    return `let time = await driver.getDeviceTime();`;183  }184  codeFor_fingerprint (varNameIgnore, varIndexIgnore, fingerprintId) {185    return `await driver.fingerprint(${fingerprintId});`;186  }187  codeFor_sessionCapabilities () {...

Full Screen

Full Screen

js-wdio.js

Source:js-wdio.js Github

copy

Full Screen

...177  codeFor_getSupportedPerformanceDataTypes () {178    return `// Not supported: getSupportedPerformanceDataTypes`;179  }180  codeFor_performTouchId (varNameIgnore, varIndexIgnore, match) {181    return `await driver.touchId(${match});`;182  }183  codeFor_toggleTouchIdEnrollment (varNameIgnore, varIndexIgnore, enroll) {184    return `await driver.toggleTouchIdEnrollment(${enroll});`;185  }186  codeFor_openNotifications () {187    return `await driver.openNotifications();`;188  }189  codeFor_getDeviceTime () {190    return `let time = await driver.getDeviceTime();`;191  }192  codeFor_fingerprint (varNameIgnore, varIndexIgnore, fingerprintId) {193    return `await driver.fingerprint(${fingerprintId});`;194  }195  codeFor_sessionCapabilities () {...

Full Screen

Full Screen

js-oxygen.js

Source:js-oxygen.js Github

copy

Full Screen

1import Framework from './framework';2class JsOxygenFramework extends Framework {3  get language () {4    return 'js';5  }6  wrapWithBoilerplate (code) {7    let caps = JSON.stringify(this.caps);8    let url = JSON.stringify(`${this.scheme}://${this.host}:${this.port}${this.path}`);9    return `// Requires the Oxygen HQ client library10// (npm install oxygen-cli -g)11// Then paste this into a .js file and run with:12// oxygen <file>.js13mob.init(${caps}, ${url});14${code}15`;16  }17  codeFor_findAndAssign (strategy, locator, localVar, isArray) {18    // wdio has its own way of indicating the strategy in the locator string19    switch (strategy) {20      case 'xpath': break; // xpath does not need to be updated21      case 'accessibility id': locator = `~${locator}`; break;22      case 'id': locator = `id=${locator}`; break;23      case 'name': locator = `name=${locator}`; break;24      case 'class name': locator = `css=${locator}`; break;25      case '-android uiautomator': locator = `android=${locator}`; break;26      case '-android datamatcher': locator = `android=${locator}`; break;27      case '-ios predicate string': locator = `ios=${locator}`; break;28      case '-ios class chain': locator = `ios=${locator}`; break; // TODO: Handle IOS class chain properly. Not all libs support it. Or take it out29      default: throw new Error(`Can't handle strategy ${strategy}`);30    }31    if (isArray) {32      return `let ${localVar} = mob.findElements(${JSON.stringify(locator)});`;33    } else {34      return `let ${localVar} = mob.findElement(${JSON.stringify(locator)});`;35    }36  }37  codeFor_click (varName, varIndex) {38    return `mob.click(${this.getVarName(varName, varIndex)});`;39  }40  codeFor_clear (varName, varIndex) {41    return `mob.clear(${this.getVarName(varName, varIndex)});`;42  }43  codeFor_sendKeys (varName, varIndex, text) {44    return `mob.type(${this.getVarName(varName, varIndex)}, ${JSON.stringify(text)});`;45  }46  codeFor_back () {47    return `mob.back();`;48  }49  codeFor_tap (varNameIgnore, varIndexIgnore, x, y) {50    return `mob.tap(${x}, ${y});`;51  }52  codeFor_swipe (varNameIgnore, varIndexIgnore, x1, y1, x2, y2) {53    return `mob.swipeScreen(${x1}, ${y1}, ${x2}, ${y2});`;54  }55  codeFor_getCurrentActivity () {56    return `let activityName = mob.getCurrentActivity();`;57  }58  codeFor_getCurrentPackage () {59    return `let packageName = mob.getCurrentPackage();`;60  }61  codeFor_installAppOnDevice (varNameIgnore, varIndexIgnore, app) {62    return `mob.installApp('${app}');`;63  }64  codeFor_isAppInstalledOnDevice (varNameIgnore, varIndexIgnore, app) {65    return `let isAppInstalled = mob.isAppInstalled("${app}");`;66  }67  codeFor_launchApp () {68    return `mob.launchApp();`;69  }70  codeFor_backgroundApp (varNameIgnore, varIndexIgnore, timeout) {71    return `mob.driver().background(${timeout});`;72  }73  codeFor_closeApp () {74    return `mob.closeApp();`;75  }76  codeFor_resetApp () {77    return `mob.resetApp();`;78  }79  codeFor_removeAppFromDevice (varNameIgnore, varIndexIgnore, app) {80    return `mob.removeApp('${app}')`;81  }82  codeFor_getAppStrings (varNameIgnore, varIndexIgnore, language, stringFile) {83    return `let appStrings = mob.driver().getAppStrings(${language ? `${language}, ` : ''}${stringFile ? `"${stringFile}` : ''});`;84  }85  codeFor_getClipboard () {86    return `let clipboardText = mob.driver().getClipboard();`;87  }88  codeFor_setClipboard (varNameIgnore, varIndexIgnore, clipboardText) {89    return `mob.driver().setClipboard('${clipboardText}')`;90  }91  codeFor_pressKeycode (varNameIgnore, varIndexIgnore, keyCode, metaState, flags) {92    return `mob.driver().longPressKeyCode(${keyCode}, ${metaState}, ${flags});`;93  }94  codeFor_longPressKeycode (varNameIgnore, varIndexIgnore, keyCode, metaState, flags) {95    return `mob.driver().longPressKeyCode(${keyCode}, ${metaState}, ${flags});`;96  }97  codeFor_hideDeviceKeyboard () {98    return `mob.driver().hideKeyboard();`;99  }100  codeFor_isKeyboardShown () {101    return `//isKeyboardShown not supported`;102  }103  codeFor_pushFileToDevice (varNameIgnore, varIndexIgnore, pathToInstallTo, fileContentString) {104    return `mob.driver().pushFile('${pathToInstallTo}', '${fileContentString}');`;105  }106  codeFor_pullFile (varNameIgnore, varIndexIgnore, pathToPullFrom) {107    return `let data = mob.driver().pullFile('${pathToPullFrom}');`;108  }109  codeFor_pullFolder (varNameIgnore, varIndexIgnore, folderToPullFrom) {110    return `let data = mob.driver().pullFolder('${folderToPullFrom}');`;111  }112  codeFor_toggleAirplaneMode () {113    return `mob.driver().toggleAirplaneMode();`;114  }115  codeFor_toggleData () {116    return `mob.driver().toggleData();`;117  }118  codeFor_toggleWiFi () {119    return `mob.driver().toggleWiFi();`;120  }121  codeFor_toggleLocationServices () {122    return `mob.driver().toggleLocationServices();`;123  }124  codeFor_sendSMS () {125    return `// Not supported: sendSms;`;126  }127  codeFor_gsmCall () {128    return `// Not supported: gsmCall`;129  }130  codeFor_gsmSignal () {131    return `// Not supported: gsmSignal`;132  }133  codeFor_gsmVoice () {134    return `// Not supported: gsmVoice`;135  }136  codeFor_shake () {137    return `mob.shake();`;138  }139  codeFor_lock (varNameIgnore, varIndexIgnore, seconds) {140    return `mob.driver().lock(${seconds});`;141  }142  codeFor_unlock () {143    return `mob.driver().unlock();`;144  }145  codeFor_isLocked () {146    return `let isLocked = mob.driver().isLocked();`;147  }148  codeFor_rotateDevice (varNameIgnore, varIndexIgnore, x, y, radius, rotation, touchCount, duration) {149    return `mob.driver().rotateDevice(${x}, ${y}, ${radius}, ${rotation}, ${touchCount}, ${duration});`;150  }151  codeFor_getPerformanceData () {152    return `// Not supported: getPerformanceData`;153  }154  codeFor_getSupportedPerformanceDataTypes () {155    return `// Not supported: getSupportedPerformanceDataTypes`;156  }157  codeFor_performTouchId (varNameIgnore, varIndexIgnore, match) {158    return `mob.driver().touchId(${match});`;159  }160  codeFor_toggleTouchIdEnrollment (varNameIgnore, varIndexIgnore, enroll) {161    return `mob.driver().toggleEnrollTouchId(${enroll});`;162  }163  codeFor_openNotifications () {164    return `mob.driver().openNotifications();`;165  }166  codeFor_getDeviceTime () {167    return `let time = mob.getDeviceTime();`;168  }169  codeFor_fingerprint (varNameIgnore, varIndexIgnore, fingerprintId) {170    return `mob.driver().fingerPrint(${fingerprintId});`;171  }172  codeFor_sessionCapabilities () {173    return `let caps = mob.driver().capabilities;`;174  }175  codeFor_setPageLoadTimeout (varNameIgnore, varIndexIgnore, ms) {176    return `mob.driver().setTimeout({'pageLoad': ${ms}});`;177  }178  codeFor_setAsyncScriptTimeout (varNameIgnore, varIndexIgnore, ms) {179    return `mob.driver().setTimeout({'script': ${ms}});`;180  }181  codeFor_setImplicitWaitTimeout (varNameIgnore, varIndexIgnore, ms) {182    return `mob.driver().setTimeout({'implicit': ${ms}});`;183  }184  codeFor_setCommandTimeout () {185    return `// Not supported: setCommandTimeout`;186  }187  codeFor_getOrientation () {188    return `let orientation = mob.driver().getOrientation();`;189  }190  codeFor_setOrientation (varNameIgnore, varIndexIgnore, orientation) {191    return `mob.driver().setOrientation("${orientation}");`;192  }193  codeFor_getGeoLocation () {194    return `let location = mob.driver().getGeoLocation();`;195  }196  codeFor_setGeoLocation (varNameIgnore, varIndexIgnore, latitude, longitude, altitude) {197    return `mob.driver().setGeoLocation({latitude: ${latitude}, longitude: ${longitude}, altitude: ${altitude}});`;198  }199  codeFor_logTypes () {200    return `let logTypes = mob.driver().getLogTypes();`;201  }202  codeFor_log (varNameIgnore, varIndexIgnore, logType) {203    return `let logs = mob.driver().getLogs('${logType}');`;204  }205  codeFor_updateSettings (varNameIgnore, varIndexIgnore, settingsJson) {206    return `mob.driver().updateSettings(${settingsJson});`;207  }208  codeFor_settings () {209    return `let settings = mob.driver().getSettings();`;210  }211}212JsOxygenFramework.readableName = 'JS - Oxygen HQ';...

Full Screen

Full Screen

touch-id-e2e-specs.js

Source:touch-id-e2e-specs.js Github

copy

Full Screen

...42    it('should accept matching fingerprint if touchID is enrolled or it should not be supported if phone doesn\'t support touchID', async () => {43      await driver.toggleTouchIdEnrollment();44      let authenticateButton = await driver.elementByName(' Authenticate with Touch ID');45      await authenticateButton.click();46      await driver.touchId(true);47      try {48        await driver.elementByName('Authenticated Successfully').should.eventually.exist;49      } catch (ign) {50        await driver.elementByName('TouchID not supported').should.eventually.exist;51      }52      await driver.toggleTouchIdEnrollment();53    });54    it('should reject not matching fingerprint if touchID is enrolled or it should not be supported if phone doesn\'t support touchID', async () => {55      await driver.toggleTouchIdEnrollment();56      let authenticateButton = await driver.elementByName(' Authenticate with Touch ID');57      await authenticateButton.click();58      await driver.touchId(false);59      try {60        await driver.elementByName('Try Again').should.eventually.exist;61      } catch (ign) {62        await driver.elementByName('TouchID not supported').should.eventually.exist;63      }64      await driver.toggleTouchIdEnrollment();65    });66    it('should enroll touchID and accept matching fingerprints then unenroll touchID and not be supported', async () => {67      // Don't enroll68      let authenticateButton = await driver.elementByName(' Authenticate with Touch ID');69      await authenticateButton.click();70      await driver.elementByName('TouchID not supported').should.eventually.exist;71      let okButton = await driver.elementByName('OK');72      await okButton.click();73      await B.delay(1000);74      // Enroll75      await driver.toggleTouchIdEnrollment();76      await authenticateButton.click();77      await driver.touchId(true);78      try {79        await driver.elementByName('Authenticated Successfully').should.eventually.exist;80      } catch (ign) {81        return await driver.elementByName('TouchID not supported').should.eventually.exist;82      }83      okButton = await driver.elementByName('OK');84      await okButton.click();85      await B.delay(1000);86      // Unenroll87      await driver.toggleTouchIdEnrollment();88      authenticateButton = await driver.elementByName(' Authenticate with Touch ID');89      await authenticateButton.click();90      await driver.elementByName('TouchID not supported').should.eventually.exist;91    });...

Full Screen

Full Screen

Login.js

Source:Login.js Github

copy

Full Screen

...62    submitIosBiometricLogin(successful) {63        // Sauce Labs (Legacy) RDC mocks iOS in a different then the normal iOS mocking,64        // so it also needs to be treated differently65        if (process.env.RDC) {66            return driver.touchId(successful);67        }68        this.allowIosBiometricUsage();69        return driver.execute(70            'mobile:sendBiometricMatch',71            {72                type: this.isFaceId() ? 'faceId' : 'touchId',73                match: successful,74            },75        );76    }77    /**78     * Allow biometric usage on iOS if it isn't already accepted79     */80    allowIosBiometricUsage() {...

Full Screen

Full Screen

general-specs.js

Source:general-specs.js Github

copy

Full Screen

...22    afterEach(async () => {23      deviceStub.restore();24    });25    it('should send translated POST request to WDA', async () => {26      await driver.touchId();27      proxySpy.calledOnce.should.be.true;28      proxySpy.firstCall.args[0].should.eql('/wda/touch_id');29      proxySpy.firstCall.args[1].should.eql('POST');30      proxySpy.firstCall.args[2].should.eql({match: true});31    });32    it('should send translated POST request to WDA with true', async () => {33      await driver.touchId(true);34      proxySpy.calledOnce.should.be.true;35      proxySpy.firstCall.args[0].should.eql('/wda/touch_id');36      proxySpy.firstCall.args[1].should.eql('POST');37      proxySpy.firstCall.args[2].should.eql({match: true});38    });39    it('should send translated POST request to WDA with false', async () => {40      await driver.touchId(false);41      proxySpy.calledOnce.should.be.true;42      proxySpy.firstCall.args[0].should.eql('/wda/touch_id');43      proxySpy.firstCall.args[1].should.eql('POST');44      proxySpy.firstCall.args[2].should.eql({match: false});45    });46    it('should not be called on a real device', async () => {47      deviceStub.object.realDevice = true;48      await driver.touchId().should.eventually.be.rejectedWith(/not supported/g);49      proxySpy.notCalled.should.be.true;50    });51  });52  describe('toggleEnrollTouchID', () => {53    let deviceStub, enrollTouchIDSpy, optsStub;54    beforeEach(() => {55      optsStub = sinon.mock(driver.opts);56      deviceStub = sinon.mock(driver.opts, 'device');57      deviceStub.object.device = {58        enrollTouchID: () => {},59      };60      enrollTouchIDSpy = sinon.spy(driver.opts.device, 'enrollTouchID');61    });62    afterEach(() => {...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { remote } = require('webdriverio');2(async () => {3    const browser = await remote({4        capabilities: {5        }6    })7    await browser.touchId({match: true});8    await browser.deleteSession();9})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const {remote} = require('webdriverio');2const assert = require('assert');3(async () => {4    const browser = await remote({5        capabilities: {6        }7    });8    await browser.touchId(true);9    await browser.deleteSession();10})();11const {remote} = require('webdriverio');12const assert = require('assert');13(async () => {14    const browser = await remote({15        capabilities: {16        }17    });18    await browser.touchId(true);19    await browser.deleteSession();20})();21const { remote } = require('webdriverio');22const assert = require('assert');23(async () => {24    const browser = await remote({25        capabilities: {26        }27    });28    await browser.touchId(true);29    await browser.deleteSession();30})();31const { remote } = require('webdriverio');32const assert = require('assert');33(async () => {34    const browser = await remote({35        capabilities: {

Full Screen

Using AI Code Generation

copy

Full Screen

1const {remote} = require('webdriverio');2const opts = {3    capabilities: {4    }5};6(async () => {7    const client = await remote(opts);

Full Screen

Using AI Code Generation

copy

Full Screen

1var appium = require('webdriverio');2var assert = require('assert');3var driver = appium.remote({4    desiredCapabilities: {5    },6});7driver.init();8driver.touchId(1).then(function(){9    console.log('Touch ID success');10    driver.end();11});12driver.touchId(0).then(function(){13    console.log('Touch ID failure');14    driver.end();15});16driver.touchId(2).then(function(){17    console.log('Touch ID not enrolled');18    driver.end();19});20driver.touchId(3).then(function(){21    console.log('Touch ID not available');22    driver.end();23});24driver.touchId(4).then(function(){25    console.log('Touch ID not available');26    driver.end();27});28driver.touchId(5).then(function(){29    console.log('Touch ID not available');30    driver.end();31});32driver.touchId(6).then(function(){33    console.log('Touch ID not available');34    driver.end();35});36driver.touchId(7).then(function(){37    console.log('Touch ID not available');38    driver.end();39});40driver.touchId(8).then(function(){41    console.log('Touch ID not available');42    driver.end();43});44driver.touchId(9).then(function(){45    console.log('Touch ID not available');46    driver.end();47});48driver.touchId(10).then(function(){49    console.log('Touch ID not available');50    driver.end();51});52driver.touchId(11).then(function(){53    console.log('Touch ID not available');54    driver.end();55});56driver.touchId(12).then(function(){57    console.log('Touch ID not available');58    driver.end();59});60driver.touchId(13).then(function(){61    console.log('Touch ID not available');62    driver.end();63});64driver.touchId(14).then(function(){65    console.log('Touch ID not available');66    driver.end();67});68driver.touchId(15).then(function(){69    console.log('Touch ID not available');70    driver.end();71});72driver.touchId(16).then(function(){73    console.log('Touch ID not available');74    driver.end();75});76driver.touchId(17).then(function(){77    console.log('Touch ID not available');

Full Screen

Using AI Code Generation

copy

Full Screen

1const wdio = require('webdriverio');2const opts = {3  capabilities: {4  }5};6const client = wdio.remote(opts);7async function main () {8  try {9    await client.init();10    await button.click();11    await client.touchId(true);12    await client.pause(2000);13    await client.deleteSession();14  } catch (e) {15    console.log(e);16  }17}18main();19const wdio = require('webdriverio');20const opts = {21  capabilities: {22  }23};24const client = wdio.remote(opts);25async function main () {26  try {27    await client.init();28    await button.click();29    await client.touchId(true);30    await client.pause(2000);31    await client.deleteSession();32  } catch (e) {33    console.log(e);34  }35}36main();37const wdio = require('webdriverio');38const opts = {39  capabilities: {

Full Screen

Using AI Code Generation

copy

Full Screen

1var webdriver = require('selenium-webdriver');2var XCUITestDriver = require('appium-xcuitest-driver');3var driver = new XCUITestDriver();4driver.touchId();5touchId(match);6driver.touchId(true);7driver.touchId(false);

Full Screen

Using AI Code Generation

copy

Full Screen

1var wd = require('wd');2var assert = require('assert');3var chai = require('chai');4var chaiAsPromised = require('chai-as-promised');5chai.use(chaiAsPromised);6var expect = chai.expect;7var desired = {8};9var driver = wd.promiseChainRemote('localhost', 4723);10driver.init(desired)11  .then(function() {12    return driver.touchId(true);13  })14  .then(function() {15    console.log('Touch ID is now on');16  })17  .catch(function(err) {18    console.log('Error: ' + err);19  });

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 Xcuitest Driver automation tests on LambdaTest cloud grid

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

Sign up Free
_

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful