How to use adb.getDeviceLanguage method in Appium Android Driver

Best JavaScript code snippet using appium-android-driver

apk-utils-specs.js

Source:apk-utils-specs.js Github

copy

Full Screen

...362      mocks.adb.expects("getApiLevel").returns(18);363      mocks.adb.expects("shell")364        .once().withExactArgs(['getprop', 'persist.sys.language'])365        .returns(language);366      (await adb.getDeviceLanguage()).should.equal(language);367      mocks.adb.verify();368    });369    it('should call shell two times with correct args and return language when API < 23', async () => {370      mocks.adb.expects("getApiLevel").returns(18);371      mocks.adb.expects("shell")372        .once().withExactArgs(['getprop', 'persist.sys.language'])373        .returns('');374      mocks.adb.expects("shell")375        .once().withExactArgs(['getprop', 'ro.product.locale.language'])376        .returns(language);377      (await adb.getDeviceLanguage()).should.equal(language);378      mocks.adb.verify();379    });380    it('should call shell one time with correct args and return language when API = 23', async () => {381      mocks.adb.expects("getApiLevel").returns(23);382      mocks.adb.expects("shell")383        .once().withExactArgs(['getprop', 'persist.sys.locale'])384        .returns(locale);385      (await adb.getDeviceLanguage()).should.equal(language);386      mocks.adb.verify();387    });388    it('should call shell two times with correct args and return language when API = 23', async () => {389      mocks.adb.expects("getApiLevel").returns(23);390      mocks.adb.expects("shell")391        .once().withExactArgs(['getprop', 'persist.sys.locale'])392        .returns('');393      mocks.adb.expects("shell")394        .once().withExactArgs(['getprop', 'ro.product.locale'])395        .returns(locale);396      (await adb.getDeviceLanguage()).should.equal(language);397      mocks.adb.verify();398    });399  }));400  describe('setDeviceLanguage', withMocks({adb}, (mocks) => {401    it('should call shell one time with correct args when API < 23', async () => {402      mocks.adb.expects("getApiLevel")403        .once().returns(21);404      mocks.adb.expects("shell")405        .once().withExactArgs(['setprop', 'persist.sys.language', language])406        .returns("");407      await adb.setDeviceLanguage(language);408      mocks.adb.verify();409    });410  }));...

Full Screen

Full Screen

general-specs.js

Source:general-specs.js Github

copy

Full Screen

1import chai from 'chai';2import chaiAsPromised from 'chai-as-promised';3import sinon from 'sinon';4import AndroidDriver from '../../..';5import { parseSurfaceLine, parseWindows } from '../../../lib/commands/general';6import helpers from '../../../lib/android-helpers';7import { withMocks } from 'appium-test-support';8import { fs } from 'appium-support';9import Bootstrap from 'appium-android-bootstrap';10import B from 'bluebird';11import ADB from 'appium-adb';12chai.should();13chai.use(chaiAsPromised);14let driver;15let sandbox = sinon.sandbox.create();16let expect = chai.expect;17describe('General', () => {18  beforeEach(() => {19    driver = new AndroidDriver();20    driver.bootstrap = new Bootstrap();21    driver.adb = new ADB();22    driver.caps = {};23    driver.opts = {};24  });25  afterEach(() => {26    sandbox.restore();27  });28  describe('keys', () => {29    it('should send keys via setText bootstrap command', async () => {30      sandbox.stub(driver.bootstrap, 'sendAction');31      driver.opts.unicodeKeyboard = true;32      await driver.keys('keys');33      driver.bootstrap.sendAction34        .calledWithExactly('setText',35          {text: 'keys', replace: false, unicodeKeyboard: true})36        .should.be.true;37    });38    it('should join keys if keys is array', async () => {39      sandbox.stub(driver.bootstrap, 'sendAction');40      driver.opts.unicodeKeyboard = false;41      await driver.keys(['k', 'e', 'y', 's']);42      driver.bootstrap.sendAction43        .calledWithExactly('setText', {text: 'keys', replace: false})44        .should.be.true;45    });46  });47  describe('getDeviceTime', () => {48    it('should return device time', async () => {49      sandbox.stub(driver.adb, 'shell');50      driver.adb.shell.returns(' 11:12 ');51      await driver.getDeviceTime().should.become('11:12');52      driver.adb.shell.calledWithExactly(['date']).should.be.true;53    });54    it('should thorws error if shell command failed', async () => {55      sandbox.stub(driver.adb, 'shell').throws();56      await driver.getDeviceTime().should.be.rejectedWith('Could not capture');57    });58  });59  describe('getPageSource', () => {60    it('should return page source', async () => {61      sandbox.stub(driver.bootstrap, 'sendAction').withArgs('source').returns('sources');62      await driver.getPageSource().should.be.equal('sources');63    });64  });65  describe('back', () => {66    it('should press back', async () => {67      sandbox.stub(driver.bootstrap, 'sendAction');68      await driver.back();69      driver.bootstrap.sendAction.calledWithExactly('pressBack').should.be.true;70    });71  });72  describe('isKeyboardShown', () => {73    it('should return true if the keyboard is shown', async () => {74      driver.adb.isSoftKeyboardPresent = () => { return {isKeyboardShown: true, canCloseKeyboard: true}; };75      (await driver.isKeyboardShown()).should.equal(true);76    });77    it('should return false if the keyboard is not shown', async () => {78      driver.adb.isSoftKeyboardPresent = () => { return {isKeyboardShown: false, canCloseKeyboard: true}; };79      (await driver.isKeyboardShown()).should.equal(false);80    });81  });82  describe('hideKeyboard', () => {83    it('should hide keyboard via back command', async () => {84      sandbox.stub(driver, 'back');85      driver.adb.isSoftKeyboardPresent = () => { return {isKeyboardShown: true, canCloseKeyboard: true}; };86      await driver.hideKeyboard();87      driver.back.calledOnce.should.be.true;88    });89    it('should not call back command if can\'t close keyboard', async () => {90      sandbox.stub(driver, 'back');91      driver.adb.isSoftKeyboardPresent = () => { return {isKeyboardShown: true, canCloseKeyboard: false}; };92      await driver.hideKeyboard();93      driver.back.notCalled.should.be.true;94    });95    it('should throw an error if no keyboard is present', async () => {96      driver.adb.isSoftKeyboardPresent = () => { return false; };97      await driver.hideKeyboard().should.be.rejectedWith(/not present/);98    });99  });100  describe('openSettingsActivity', () => {101    it('should open settings activity', async () => {102      sandbox.stub(driver.adb, 'getFocusedPackageAndActivity')103        .returns({appPackage: 'pkg', appActivity: 'act'});104      sandbox.stub(driver.adb, 'shell');105      sandbox.stub(driver.adb, 'waitForNotActivity');106      await driver.openSettingsActivity('set1');107      driver.adb.shell.calledWithExactly(['am', 'start', '-a', 'android.settings.set1'])108        .should.be.true;109      driver.adb.waitForNotActivity.calledWithExactly('pkg', 'act', 5000)110        .should.be.true;111    });112  });113  describe('getWindowSize', () => {114    it('should get window size', async () => {115      sandbox.stub(driver.bootstrap, 'sendAction')116        .withArgs('getDeviceSize').returns('size');117      await driver.getWindowSize().should.be.equal('size');118    });119  });120  describe('getCurrentActivity', () => {121    it('should get current activity', async () => {122      sandbox.stub(driver.adb, 'getFocusedPackageAndActivity')123        .returns({appActivity: 'act'});124      await driver.getCurrentActivity().should.eventually.be.equal('act');125    });126  });127  describe('getCurrentPackage', () => {128    it('should get current activity', async () => {129      sandbox.stub(driver.adb, 'getFocusedPackageAndActivity')130        .returns({appPackage: 'pkg'});131      await driver.getCurrentPackage().should.eventually.equal('pkg');132    });133  });134  describe('getLogTypes', () => {135    it('should get log types', async () => {136      await driver.getLogTypes().should.be.deep.equal(['logcat']);137    });138  });139  describe('getLog', () => {140    it('should get log types', async () => {141      sandbox.stub(driver.adb, 'getLogcatLogs').returns('logs');142      await driver.getLog('logcat').should.be.equal('logs');143    });144    it('should throws exception if log type is unsupported', async () => {145      expect(() => driver.getLog('unsupported_type'))146        .to.throw('Unsupported log type unsupported_type');147    });148  });149  describe('isAppInstalled', () => {150    it('should return true if app is installed', async () => {151      sandbox.stub(driver.adb, 'isAppInstalled').withArgs('pkg').returns(true);152      await driver.isAppInstalled('pkg').should.be.true;153    });154  });155  describe('removeApp', () => {156    it('should remove app', async () => {157      sandbox.stub(driver.adb, 'uninstallApk').withArgs('pkg').returns(true);158      await driver.removeApp('pkg').should.be.true;159    });160  });161  describe('installApp', () => {162    it('should install app', async () => {163      driver.opts.fastReset = 'fastReset';164      let app = 'app.apk';165      let opts = {app: 'app.apk', appPackage: 'pkg', fastReset: 'fastReset'};166      sandbox.stub(driver.helpers, 'configureApp').withArgs('app', '.apk')167        .returns(app);168      sandbox.stub(fs, 'exists').withArgs(app).returns(true);169      sandbox.stub(driver.adb, 'packageAndLaunchActivityFromManifest')170        .withArgs(app).returns({apkPackage: 'pkg'});171      sandbox.stub(helpers, 'installApkRemotely')172        .returns(true);173      await driver.installApp('app').should.eventually.be.true;174      driver.helpers.configureApp.calledOnce.should.be.true;175      fs.exists.calledOnce.should.be.true;176      driver.adb.packageAndLaunchActivityFromManifest.calledOnce.should.be.true;177      helpers.installApkRemotely.calledWithExactly(driver.adb, opts)178        .should.be.true;179    });180    it('should throw an error if APK does not exist', async () => {181      await driver.installApp('non/existent/app.apk').should.be.rejectedWith(/Could not find/);182    });183  });184  describe('background', function () {185    it('should bring app to background and back', async function () {186      const appPackage = 'wpkg';187      const appActivity = 'wacv';188      driver.opts = {appPackage, appActivity, intentAction: 'act',189                     intentCategory: 'cat', intentFlags: 'flgs',190                     optionalIntentArguments: 'opt'};191      let params = {pkg: appPackage, activity: appActivity, action: 'act', category: 'cat',192                    flags: 'flgs',193                    optionalIntentArguments: 'opt', stopApp: false};194      sandbox.stub(driver.adb, 'goToHome');195      sandbox.stub(driver.adb, 'getFocusedPackageAndActivity')196        .returns({appPackage, appActivity});197      sandbox.stub(B, 'delay');198      sandbox.stub(driver.adb, 'startApp');199      await driver.background(10);200      driver.adb.getFocusedPackageAndActivity.calledOnce.should.be.true;201      driver.adb.goToHome.calledOnce.should.be.true;202      B.delay.calledWithExactly(10000).should.be.true;203      driver.adb.startApp.calledWithExactly(params).should.be.true;204    });205    it('should bring app to background and back if started after session init', async function () {206      const appPackage = 'newpkg';207      const appActivity = 'newacv';208      driver.opts = {appPackage: 'pkg', appActivity: 'acv', intentAction: 'act',209                     intentCategory: 'cat', intentFlags: 'flgs',210                     optionalIntentArguments: 'opt'};211      let params = {pkg: appPackage, activity: appActivity, action: 'act', category: 'cat',212                    flags: 'flgs', waitPkg: 'wpkg', waitActivity: 'wacv',213                    optionalIntentArguments: 'opt', stopApp: false};214      driver.opts.startActivityArgs = {[`${appPackage}/${appActivity}`]: params};215      sandbox.stub(driver.adb, 'goToHome');216      sandbox.stub(driver.adb, 'getFocusedPackageAndActivity')217        .returns({appPackage, appActivity});218      sandbox.stub(B, 'delay');219      sandbox.stub(driver.adb, 'startApp');220      await driver.background(10);221      driver.adb.getFocusedPackageAndActivity.calledOnce.should.be.true;222      driver.adb.goToHome.calledOnce.should.be.true;223      B.delay.calledWithExactly(10000).should.be.true;224      driver.adb.startApp.calledWithExactly(params).should.be.true;225    });226    it('should not bring app back if seconds are negative', async function () {227      sandbox.stub(driver.adb, 'goToHome');228      sandbox.stub(driver.adb, 'startApp');229      await driver.background(-1);230      driver.adb.goToHome.calledOnce.should.be.true;231      driver.adb.startApp.notCalled.should.be.true;232    });233  });234  describe('getStrings', withMocks({helpers}, (mocks) => {235    it('should return app strings', async () => {236      driver.bootstrap.sendAction = () => { return ''; };237      mocks.helpers.expects("pushStrings")238          .returns({test: 'en_value'});239      let strings = await driver.getStrings('en');240      strings.test.should.equal('en_value');241      mocks.helpers.verify();242    });243    it('should return cached app strings for the specified language', async () => {244      driver.adb.getDeviceLanguage = () => { return 'en'; };245      driver.apkStrings.en = {test: 'en_value'};246      driver.apkStrings.fr = {test: 'fr_value'};247      let strings = await driver.getStrings('fr');248      strings.test.should.equal('fr_value');249    });250    it('should return cached app strings for the device language', async () => {251      driver.adb.getDeviceLanguage = () => { return 'en'; };252      driver.apkStrings.en = {test: 'en_value'};253      driver.apkStrings.fr = {test: 'fr_value'};254      let strings = await driver.getStrings();255      strings.test.should.equal('en_value');256    });257  }));258  describe('launchApp', () => {259    it('should init and start app', async () => {260      sandbox.stub(driver, 'initAUT');261      sandbox.stub(driver, 'startAUT');262      await driver.launchApp();263      driver.initAUT.calledOnce.should.be.true;264      driver.startAUT.calledOnce.should.be.true;265    });266  });267  describe('startActivity', () => {268    let params;269    beforeEach(() => {270      params = {pkg: 'pkg', activity: 'act', waitPkg: 'wpkg', waitActivity: 'wact',271                action: 'act', category: 'cat', flags: 'flgs', optionalIntentArguments: 'opt'};272      sandbox.stub(driver.adb, 'startApp');273    });274    it('should start activity', async () => {275      params.optionalIntentArguments = 'opt';276      params.stopApp = false;277      await driver.startActivity('pkg', 'act', 'wpkg', 'wact', 'act',278        'cat', 'flgs', 'opt', true);279      driver.adb.startApp.calledWithExactly(params).should.be.true;280    });281    it('should use dontStopAppOnReset from opts if it is not passed as param', async () => {282      driver.opts.dontStopAppOnReset = true;283      params.stopApp = false;284      await driver.startActivity('pkg', 'act', 'wpkg', 'wact', 'act', 'cat', 'flgs', 'opt');285      driver.adb.startApp.calledWithExactly(params).should.be.true;286    });287    it('should use appPackage and appActivity if appWaitPackage and appWaitActivity are undefined', async () => {288      params.waitPkg = 'pkg';289      params.waitActivity = 'act';290      params.stopApp = true;291      await driver.startActivity('pkg', 'act', null, null, 'act', 'cat', 'flgs', 'opt', false);292      driver.adb.startApp.calledWithExactly(params).should.be.true;293    });294  });295  describe('reset', () => {296    it('should reset app via reinstall if fullReset is true', async () => {297      driver.opts.fullReset = true;298      driver.opts.appPackage = 'pkg';299      sandbox.stub(driver.adb, 'stopAndClear');300      sandbox.stub(driver.adb, 'uninstallApk');301      sandbox.stub(helpers, 'installApkRemotely');302      sandbox.stub(driver, 'grantPermissions');303      sandbox.stub(driver, 'startAUT').returns('aut');304      await driver.reset().should.eventually.be.equal('aut');305      driver.adb.stopAndClear.calledWithExactly('pkg').should.be.true;306      driver.adb.uninstallApk.calledWithExactly('pkg').should.be.true;307      helpers.installApkRemotely.calledWithExactly(driver.adb, driver.opts)308        .should.be.true;309      driver.grantPermissions.calledOnce.should.be.true;310      driver.startAUT.calledOnce.should.be.true;311    });312    it('should do fast reset if fullReset is false', async () => {313      driver.opts.fullReset = false;314      driver.opts.appPackage = 'pkg';315      sandbox.stub(driver.adb, 'stopAndClear');316      sandbox.stub(driver, 'grantPermissions');317      sandbox.stub(driver, 'startAUT').returns('aut');318      await driver.reset().should.eventually.be.equal('aut');319      driver.adb.stopAndClear.calledWithExactly('pkg').should.be.true;320      driver.grantPermissions.calledOnce.should.be.true;321      driver.startAUT.calledOnce.should.be.true;322    });323  });324  describe('startAUT', () => {325    it('should start AUT', async () => {326      driver.opts = {appPackage: 'pkg', appActivity: 'act', intentAction: 'actn',327                     intentCategory: 'cat', intentFlags: 'flgs', appWaitPackage: 'wpkg',328                     appWaitActivity: 'wact', appWaitDuration: 'wdur',329                     optionalIntentArguments: 'opt'};330      let params = {pkg: 'pkg', activity: 'act', action: 'actn', category: 'cat',331                    flags: 'flgs', waitPkg: 'wpkg', waitActivity: 'wact',332                    waitDuration: 'wdur', optionalIntentArguments: 'opt', stopApp: false};333      driver.opts.dontStopAppOnReset = true;334      params.stopApp = false;335      sandbox.stub(driver.adb, 'startApp');336      await driver.startAUT();337      driver.adb.startApp.calledWithExactly(params).should.be.true;338    });339  });340  describe('setUrl', () => {341    it('should set url', async () => {342      driver.opts = {appPackage: 'pkg'};343      sandbox.stub(driver.adb, 'startUri');344      await driver.setUrl('url');345      driver.adb.startUri.calledWithExactly('url', 'pkg').should.be.true;346    });347  });348  describe('closeApp', () => {349    it('should close app', async () => {350      driver.opts = {appPackage: 'pkg'};351      sandbox.stub(driver.adb, 'forceStop');352      await driver.closeApp();353      driver.adb.forceStop.calledWithExactly('pkg').should.be.true;354    });355  });356  describe('getDisplayDensity', () => {357    it('should return the display density of a device', async () => {358      driver.adb.shell = () => { return '123'; };359      (await driver.getDisplayDensity()).should.equal(123);360    });361    it('should return the display density of an emulator', async () => {362      driver.adb.shell = (cmd) => {363        let joinedCmd = cmd.join(' ');364        if (joinedCmd.indexOf('ro.sf') !== -1) {365          // device property look up366          return '';367        } else if (joinedCmd.indexOf('qemu.sf') !== -1) {368          // emulator property look up369          return '456';370        }371        return '';372      };373      (await driver.getDisplayDensity()).should.equal(456);374    });375    it('should throw an error if the display density property can\'t be found', async () => {376      driver.adb.shell = () => { return ''; };377      await driver.getDisplayDensity().should.be.rejectedWith(/Failed to get display density property/);378    });379    it('should throw and error if the display density is not a number', async () => {380      driver.adb.shell = () => { return 'abc'; };381      await driver.getDisplayDensity().should.be.rejectedWith(/Failed to get display density property/);382    });383  });384  describe('parseSurfaceLine', () => {385    it('should return visible true if the surface is visible', async () => {386      parseSurfaceLine('shown=true rect=1 1 1 1').should.be.eql({387        visible: true,388        x: 1,389        y: 1,390        width: 1,391        height: 1392      });393    });394    it('should return visible false if the surface is not visible', async () => {395      parseSurfaceLine('shown=false rect=1 1 1 1').should.be.eql({396        visible: false,397        x: 1,398        y: 1,399        width: 1,400        height: 1401      });402    });403    it('should return the parsed surface bounds', async () => {404      parseSurfaceLine('shown=true rect=(1.0,2.0) 3.0 x 4.0').should.be.eql({405        visible: true,406        x: 1,407        y: 2,408        width: 3,409        height: 4410      });411    });412  });413  // these are used for both parseWindows and getSystemBars tests414  let validWindowOutput = [415    '  Window #1 Derp',416    '    stuff',417    '      Surface: derp shown=false lalalala rect=(9.0,8.0) 7.0 x 6.0',418    '    more stuff',419    '  Window #2 StatusBar',420    '    blah blah blah',421    '      Surface: blah blah shown=true blah blah rect=(1.0,2.0) 3.0 x 4.0',422    '    blah blah blah',423    '  Window #3 NavigationBar',424    '    womp womp',425    '      Surface: blah blah shown=false womp womp rect=(5.0,6.0) 50.0 x 60.0',426    '    qwerty asd zxc'427  ].join('\n');428  let validSystemBars = {429    statusBar: {visible: true, x: 1, y: 2, width: 3, height: 4},430    navigationBar: {visible: false, x: 5, y: 6, width: 50, height: 60}431  };432  describe('parseWindows', () => {433    it('should throw an error if the status bar info wasn\'t found', async () => {434      expect(() => { parseWindows(''); })435        .to.throw(Error, /Failed to parse status bar information./);436    });437    it('should throw an error if the navigation bar info wasn\'t found', async () => {438      let windowOutput = [439        '  Window #1 StatusBar',440        '    blah blah blah',441        '      Surface: blah blah shown=true blah blah rect=(1.0,2.0) 3.0 x 4.0',442        '    blah blah blah'443      ].join('\n');444      expect(() => { parseWindows(windowOutput); })445        .to.throw(Error, /Failed to parse navigation bar information./);446    });447    it('should return status and navigation bar info when both are given', async () => {448      parseWindows(validWindowOutput).should.be.eql(validSystemBars);449    });450  });451  describe('getSystemBars', () => {452    it('should throw an error if there\'s no window manager output', async () => {453      driver = new AndroidDriver();454      driver.adb = {};455      driver.adb.shell = () => { return ''; };456      await driver.getSystemBars().should.be.rejectedWith(/Did not get window manager output./);457    });458    it('should return the parsed system bar info', async () => {459      driver = new AndroidDriver();460      driver.adb = {};461      driver.adb.shell = () => { return validWindowOutput; };462      (await driver.getSystemBars()).should.be.eql(validSystemBars);463    });464  });...

Full Screen

Full Screen

general.js

Source:general.js Github

copy

Full Screen

...22  await this.adb.keyevent(4);23};24commands.getStrings = async function (language) {25  if (!language) {26    language = await this.adb.getDeviceLanguage();27    log.info(`No language specified, returning strings for: ${language}`);28  }29  if (this.apkStrings[language]) {30    // Return cached strings31    return this.apkStrings[language];32  }33  // TODO: This is mutating the current language, but it's how appium currently works34  this.apkStrings[language] = await androidHelpers.pushStrings(language, this.adb, this.opts);35  await this.uiautomator2.jwproxy.command(`/appium/app/strings`, 'POST', {});36  return this.apkStrings[language];37};38// memoized in constructor39commands.getWindowSize = async function () {40  return await this.uiautomator2.jwproxy.command('/window/current/size', 'GET', {});...

Full Screen

Full Screen

android-helper-e2e-specs.js

Source:android-helper-e2e-specs.js Github

copy

Full Screen

...39    });40    it('should set device language and country', async function () {41      await helpers.ensureDeviceLocale(adb, 'fr', 'FR');42      if (await adb.getApiLevel() < 23) {43        await adb.getDeviceLanguage().should.eventually.equal('fr');44        await adb.getDeviceCountry().should.eventually.equal('FR');45      } else {46        await adb.getDeviceLocale().should.eventually.equal('fr-FR');47      }48    });49    it('should set device language and country with script', async function () {50      await helpers.ensureDeviceLocale(adb, 'zh', 'CN', 'Hans');51      if (await adb.getApiLevel() < 23) {52        await adb.getDeviceLanguage().should.eventually.equal('fr');53        await adb.getDeviceCountry().should.eventually.equal('FR');54      } else {55        await adb.getDeviceLocale().should.eventually.equal('fr-Hans-CN');56      }57    });58  });59  describe('pushSettingsApp', function () {60    const settingsPkg = 'io.appium.settings';61    it('should be able to upgrade from settings v1 to latest', async function () {62      await adb.uninstallApk(settingsPkg);63      // get and install old version of settings app64      await exec('npm', ['install', `${settingsPkg}@2.0.0`]);65      // old version has a different apk path, so manually enter66      // otherwise pushing the app will fail because import will have the old...

Full Screen

Full Screen

language-e2e-specs.js

Source:language-e2e-specs.js Github

copy

Full Screen

...25    }26  });27  async function getLocale (adb) {28    if (await adb.getApiLevel() < 23) {29      const language = await adb.getDeviceLanguage();30      const country = await adb.getDeviceCountry();31      return `${language}-${country}`;32    } else {33      return await adb.getDeviceLocale();34    }35  }36  it('should start as FR', async function () {37    let frCaps = Object.assign({}, DEFAULT_CAPS, {language: 'fr', locale: 'FR'});38    await driver.createSession(frCaps);39    await getLocale(driver.adb).should.eventually.equal('fr-FR');40  });41  it('should start as US', async function () {42    let usCaps = Object.assign({}, DEFAULT_CAPS, {language: 'en', locale: 'US'});43    await driver.createSession(usCaps);...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

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('btnK')).click();8driver.wait(until.titleIs('webdriver - Google Search'), 1000);9driver.quit();10var webdriver = require('selenium-webdriver'),11    until = webdriver.until;12var driver = new webdriver.Builder()13    .forBrowser('chrome')14    .build();15driver.findElement(By.name('q')).sendKeys('webdriver');16driver.findElement(By.name('btnK')).click();17driver.wait(until.titleIs('webdriver - Google Search'), 1000);18driver.quit();19var webdriver = require('selenium-webdriver'),20    until = webdriver.until;21var driver = new webdriver.Builder()22    .forBrowser('chrome')23    .build();24driver.findElement(By.name('q')).sendKeys('webdriver');25driver.findElement(By.name('btnK')).click();26driver.wait(until.titleIs('webdriver - Google Search'), 1000);27driver.quit();28var webdriver = require('selenium-webdriver'),29    until = webdriver.until;30var driver = new webdriver.Builder()31    .forBrowser('chrome')32    .build();33driver.findElement(By.name('q')).sendKeys('webdriver');34driver.findElement(By.name('btnK')).click();35driver.wait(until.titleIs('webdriver - Google Search'), 1000);36driver.quit();37var webdriver = require('selenium-webdriver'),38    until = webdriver.until;39var driver = new webdriver.Builder()40    .forBrowser('chrome')41    .build();42driver.findElement(By.name('q')).sendKeys('webdriver');43driver.findElement(By.name('btnK

Full Screen

Using AI Code Generation

copy

Full Screen

1var adb = require('appium-adb');2var language = adb.getDeviceLanguage();3console.log(language);4var adb = require('appium-adb');5var language = adb.setDeviceLanguage("en");6console.log(language);7var adb = require('appium-adb');8var country = adb.getDeviceCountry();9console.log(country);10var adb = require('appium-adb');11var country = adb.setDeviceCountry("US");12console.log(country);13var adb = require('appium-adb');14var time = adb.getDeviceTime();15console.log(time);16var adb = require('appium-adb');17var time = adb.setDeviceTime("2016-12-11T12:00:00");18console.log(time);19var adb = require('appium-adb');20var language = adb.getDeviceSysLanguage();21console.log(language);22var adb = require('appium-adb');23var country = adb.getDeviceSysCountry();24console.log(country);25var adb = require('appium-adb');26var locale = adb.getDeviceSysLocale();27console.log(locale);28var adb = require('appium-adb');29var platformVersion = adb.getDevicePlatformVersion();30console.log(platformVersion);31var adb = require('appium-adb');32var model = adb.getDeviceModel();33console.log(model);

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);6chai.should();7var desiredCaps = {8};9var driver = wd.promiseChainRemote("

Full Screen

Using AI Code Generation

copy

Full Screen

1var wd = require('wd'),2    _ = require('underscore'),3    Q = require('q'),4    assert = require('assert');5var desired = {6};7var driver = wd.promiseChainRemote("localhost", 4723);8  .init(desired)9  .getDeviceLanguage()10  .then(function(language) {11    console.log('Device Language: ' + language);12  })13  .fin(function() { return driver.quit(); })14  .done();15var wd = require('wd'),16    _ = require('underscore'),17    Q = require('q'),18    assert = require('assert');19var desired = {20};21var driver = wd.promiseChainRemote("localhost", 4723);22  .init(desired)23  .execute('mobile: getDeviceLanguage', [])24  .then(function(language) {25    console.log('Device Language: ' + language);26  })27  .fin(function() { return driver.quit(); })28  .done();29info: Client User-Agent string: Apache-HttpClient/4.3.4 (java 1.5)

Full Screen

Using AI Code Generation

copy

Full Screen

1var webdriver = require('selenium-webdriver');2var driver = new webdriver.Builder().forBrowser('chrome').build();3var adb = require('appium-android-driver').AndroidDriver.adb;4driver.getTitle().then(function(title) {5    console.log(title);6});7adb.getDeviceLanguage().then(function(language) {8    console.log(language);9});10driver.quit();11var webdriver = require('selenium-webdriver');12var driver = new webdriver.Builder().forBrowser('chrome').build();13var adb = require('appium-android-driver').AndroidDriver.adb;14driver.getTitle().then(function(title) {15    console.log(title);16});17adb.getDeviceCountry().then(function(country) {18    console.log(country);19});20driver.quit();21var webdriver = require('selenium-webdriver');22var driver = new webdriver.Builder().forBrowser('chrome').build();23var adb = require('appium-android-driver').AndroidDriver.adb;24driver.getTitle().then(function(title) {25    console.log(title);26});27adb.getDeviceTime().then(function(time) {28    console.log(time);29});30driver.quit();31var webdriver = require('selenium-webdriver');32var driver = new webdriver.Builder().forBrowser('chrome').build();33var adb = require('appium-android-driver').AndroidDriver.adb;34driver.getTitle().then(function(title) {35    console.log(title);36});37adb.getDeviceTimeZone().then(function(timeZone) {38    console.log(timeZone);39});40driver.quit();41var webdriver = require('selenium-webdriver');42var driver = new webdriver.Builder().forBrowser('chrome').build();43var adb = require('appium-android-driver').AndroidDriver.adb;44driver.getTitle().then(function(title) {45    console.log(title);46});47adb.getDeviceDensity().then(function(density) {

Full Screen

Using AI Code Generation

copy

Full Screen

1var webdriverio = require('webdriverio');2var options = {3    desiredCapabilities: {4    }5};6    .remote(options)7    .init()8    .getDeviceLanguage()9    .then(function (language) {10        console.log(language);11    })12    .end();13var webdriverio = require('webdriverio');14var options = {15    desiredCapabilities: {16    }17};18    .remote(options)19    .init()20    .getDeviceTime()21    .then(function (time) {22        console.log(time);23    })24    .end();25var webdriverio = require('webdriverio');26var options = {27    desiredCapabilities: {28    }29};30    .remote(options)31    .init()32    .getNetworkConnection()33    .then(function (networkConnection) {34        console.log(networkConnection);35    })36    .end();37var webdriverio = require('webdriverio');38var options = {39    desiredCapabilities: {40    }41};42    .remote(options)43    .init()44    .getPerformanceData('com.example.android.apis', 'cpuinfo', 3)45    .then(function (performanceData) {46        console.log(performanceData);47    })48    .end();

Full Screen

Using AI Code Generation

copy

Full Screen

1const adb = require('appium-adb');2const androidDriver = require('appium-android-driver');3const driver = new androidDriver.AndroidDriver();4const adbDriver = new adb.ADB();5const deviceLanguage = adbDriver.getDeviceLanguage();6console.log(deviceLanguage);7const adb = require('appium-adb');8const androidDriver = require('appium-android-driver');9const driver = new androidDriver.AndroidDriver();10const adbDriver = new adb.ADB();11const deviceLanguage = adbDriver.getDeviceLanguage();12console.log(deviceLanguage);13const adb = require('appium-adb');14const androidDriver = require('appium-android-driver');15const driver = new androidDriver.AndroidDriver();16const adbDriver = new adb.ADB();17const deviceLanguage = adbDriver.getDeviceLanguage();18console.log(deviceLanguage);19const adb = require('appium-adb');20const androidDriver = require('appium-android-driver');21const driver = new androidDriver.AndroidDriver();22const adbDriver = new adb.ADB();23const deviceLanguage = adbDriver.getDeviceLanguage();24console.log(deviceLanguage);25const adb = require('appium-adb');26const androidDriver = require('appium-android-driver');27const driver = new androidDriver.AndroidDriver();28const adbDriver = new adb.ADB();29const deviceLanguage = adbDriver.getDeviceLanguage();30console.log(deviceLanguage);31const adb = require('appium-adb');32const androidDriver = require('appium-android-driver');33const driver = new androidDriver.AndroidDriver();34const adbDriver = new adb.ADB();35const deviceLanguage = adbDriver.getDeviceLanguage();36console.log(deviceLanguage);37const adb = require('appium-adb');38const androidDriver = require('appium-android-driver');39const driver = new androidDriver.AndroidDriver();40const adbDriver = new adb.ADB();41const deviceLanguage = adbDriver.getDeviceLanguage();42console.log(deviceLanguage);43const adb = require('appium-adb');

Full Screen

Using AI Code Generation

copy

Full Screen

1var wd = require('wd');2var assert = require('assert');3var desired = require('./desired');4var _ = require('underscore');5var browser = wd.promiseChainRemote('localhost', 4723);6browser.on('status', function(info) {7  console.log(info.cyan);8});9browser.on('command', function(meth, path, data) {10  console.log(' > ' + meth.yellow, path.grey, data || '');11});12  .init(desired)13  .then(function() {14    return browser.getDeviceLanguage();15  })16  .then(function(language) {17    console.log('Language is: ' + language);18    return browser.setDeviceLanguage('en');19  })20  .then(function() {21    return browser.getDeviceLanguage();22  })23  .then(function(language) {24    console.log('Language is: ' + language);25    return browser.setDeviceLanguage('fr');26  })27  .then(function() {28    return browser.getDeviceLanguage();29  })30  .then(function(language) {31    console.log('Language is: ' + language);32  })33  .fin(function() { return browser.quit(); })34  .done();35module.exports = {36};37{38  "dependencies": {39  },40  "scripts": {41  }42}

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