How to use driver.status method in Appium Base Driver

Best JavaScript code snippet using appium-base-driver

all_driver_record_map.js

Source:all_driver_record_map.js Github

copy

Full Screen

1/**2 * 3 */4var companyID = 0;5var allDrivers = [];6var driverIterator = 0;7var timeFrom = '';8var timeTo = '';9var map;10var driverPolylines = [];11var selectedPolyLine = null;12var color;13var pointMarkers = new Array();14var working_status;15var baseURL = '';16function initializeMap(lat, lng, company_id, time_from, time_to, all_drivers, project_id, delivered_working_status, access_token) {17	working_status = delivered_working_status;18	19	L.mapbox.accessToken = access_token;20	21	map = L.mapbox.map('map', project_id).setView([lat, lng], 10);22	var loc = window.location.pathname;23	baseURL = loc.substring(0, window.location.pathname.lastIndexOf('/'));24	companyID = company_id;25	drivers = $.parseJSON(all_drivers);26	timeFrom = time_from;27	timeTo = time_to;28	29	foreachDriverDrawRoute();30}31function getDriverStatus(driver_id) {32	var defer = $.Deferred();33    $.ajax({34        url: baseURL,35        data: {36        	action: 'driver_status_history_json',37        	company_id: companyID,38            driver_id: driver_id,39            time_from: timeFrom,40            time_to: timeTo41        },42        dataType: 'json',43        success: defer.resolve,44        error: defer.reject45    });46    return defer.promise();47}48function foreachDriverDrawRoute() {49	var driver = drivers[driverIterator];50	getDriverStatus(driver.id)51		.done(function(data){52			53			    var driver = drivers[driverIterator];54				console.log(driverIterator+':'+driver.id+': success');55				56				// start loading next driver status while drawing.57				driverIterator++;58				if(driverIterator < drivers.length) {59					foreachDriverDrawRoute();60				} else {61					// Need to resize62					// if count of drivers is 1 then no lines shows on map with javascript error63					if (drivers.length != 1)64						resizeToFit();65				};66				67				/***************** マウスオーバーしたところの緯度経度を取得 ***************/68				/*69				var click = document.getElementById('click'),70			    mousemove = document.getElementById('mousemove');71				map.on('mousemove', function(e) {72				    console.log(e.containerPoint.toString() + ', ' + e.latlng.toString());73				    var mapMarker = L.marker([e.latlng.lat, e.latlng.lng], {74					    icon: L.icon({75					    	'iconUrl': 'templates/image/transparent_icon.png'76					    })77					});78		            mapMarker.addTo(map);79		            mapMarker.bindPopup('<p><b>'+e.containerPoint.toString() + ', ' + e.latlng.toString()+'</b></p>');80		            mapMarker.openPopup();81				});82				*/83				/***************** すべてにマーカーを設置 ***************/84				/*85				var points = Array();86				data.forEach(function(driver_status) {87					88					// Marker For Popup of driver status89					var mapMarker = L.marker([driver_status.latitude, driver_status.longitude], {90					    icon: L.icon({91					    	'iconUrl': 'templates/image/transparent_icon.png'92					    })93					});94		            mapMarker.addTo(map);95		            mapMarker.bindPopup('<p><b>'+driver_status.created+'</b></p><p>'+driver_status.address+'</p>');96		            mapMarker.on('mouseover', function(m) {97		            	mapMarker.openPopup();98		            });99					100		            // points for Polyline 101		            points.push(L.latLng(driver_status.latitude, driver_status.longitude) );102					var point = L.point();103				});104				//console.log(points);105				console.log(driver);106				driverPolylines[driver.id] = L.polyline(points, {color: '#'+driver.color, opacity:0.5}).addTo(map);107				*/108				/****************************************************/109				/**************************** サーバーにあるものと同じ ****************************/110				//console.log(data);111				var points = Array();112				data['points'].forEach(function(driver_status) {113					//console.log(driver_status);114					points.push(L.latLng(driver_status.latitude, driver_status.longitude) );115					116					var point = L.point();117				});118				//console.log(points);119				console.log(driver);120				var polyLine = L.polyline(points, {color: '#'+driver.color, opacity:0.5});121				polyLine.addTo(map);122				polyLine.on('mouseover', function(e) {123					console.log(e);124				});125				driverPolylines[driver.id] = polyLine;126				/****************************************************************************/127				128				// Even if count of drivers is 1 , call resizeToFit() without error129				if (drivers.length == 1)130					resizeToFit( driver.id );131				132		})133		.fail(function(data){134			console.log(driverIterator+':'+driver.id+': failed');135			console.log(data);136			driverIterator++;137			if(driverIterator < drivers.length) {138				foreachDriverDrawRoute();139			}140		});141}142/*143 * 地図下の名前をクリックされたドライバーの緯度経度を取得し、透明マーカーを設置144 */145function getSelectedDriverPoints( driver_id ) {146	for (var i = 0; i < pointMarkers.length; i++){147		map.removeLayer(pointMarkers[i]); 148	}149	pointMarkers.length = 0;150	151	getDriverStatus(driver_id)152		.done(function(data){153				154			/***************** マーカーを設置 ***************/155			var driver_name = data['driver_name'];156			 data['points'].forEach(function(driver_status) {157				// Marker For Popup of driver status158				var mapMarker = L.marker([driver_status.latitude, driver_status.longitude], {159				    icon: L.icon({160				    	'iconUrl': 'templates/image/transparent_icon.png'161				    })162				});163				164				var status_ja;165				if ( driver_status.status == 1 ) {166					status_ja = working_status.action_1;167				} else if ( driver_status.status == 2 ) {168					status_ja = working_status.action_2;169				} else if ( driver_status.status == 3 ) {170					status_ja = working_status.action_3;171				} else if ( driver_status.status == 4 ) {172					status_ja = working_status.action_4;173				}174				175	            mapMarker.addTo(map);176	            mapMarker.bindPopup('<p><b>'+driver_status.created+'</b></p><p>'+driver_name+'</p><p>'+status_ja+'</p><p>'+driver_status.address+'</p>');177	            mapMarker.on('mouseover', function(m) {178	            	mapMarker.openPopup();179	            });180				181	            // points for Polyline 182	            pointMarkers.push( mapMarker );183			});184			/****************************************************/185		})186		.fail(function(data){187			console.log(driverIterator+':'+driver.id+': failed');188			console.log(data);189			driverIterator++;190			if(driverIterator < drivers.length) {191				foreachDriverDrawRoute();192			}193		});194}195function resizeToFitAll() {196	var mapBounds = _.reduce(driverPolylines, function(bounds, polyline) {197		if(!polyline) return bounds;198		199		var polylineBounds = polyline.getBounds();200		if(!bounds) {201			return polylineBounds;202		} else if(bounds.contains(polylineBounds)){203			return bounds;204		} else {205			return bounds.extend(polylineBounds);206		}207	});208	map.fitBounds(mapBounds);209}210function resizeToFit(driver_id) {211	if(driver_id == undefined) {212		resizeToFitAll();213		return;214	}215	if(selectedPolyLine) {216		selectedPolyLine.setStyle({opacity:0.5, weight:5, dasharray:null});217	}218	var polyline = driverPolylines[driver_id];219	polyline.bringToFront();220	console.log(polyline);221	var color = polyline.options.color;222	var bounds = driverPolylines[driver_id].getBounds();223	console.log(bounds);224	if(bounds.getNorth() != bounds.getSouth() || bounds.getWest() != bounds.getEast()) map.fitBounds(bounds);225	//polyline.setStyle({opacity:1, weight:10, color:"#FFFFFF"});226	227	selectedPolyLine = polyline;228	window.setTimeout(function(){229		selectedPolyLine.setStyle({weight:14, opacity:1});230		animateShrinkPolylineToDefault(selectedPolyLine);231	}, 100);232	233	getSelectedDriverPoints( driver_id );234}235function animateShrinkPolylineToDefault(polyline) {236	window.setTimeout(function(){237		var weight = polyline.options.weight;238		if(weight > 5) {239			weight-=2;240			polyline.setStyle({weight: weight, dasharray:null});241			animateShrinkPolylineToDefault(polyline);242		}243	}, 100);...

Full Screen

Full Screen

DriverStatusScreen.js

Source:DriverStatusScreen.js Github

copy

Full Screen

1import React, { Component } from "react";2import {3	View,4	Text,5	Image,6	BackHandler,7	AsyncStorage8} from "react-native";9import RedBulb from "../../assets/driver_off.png";10import GreenBulb from "../../assets/driver_on.png";11import FlipToggle from 'react-native-flip-toggle-button';12import { Actions } from "react-native-router-flux";13import { connect } from "react-redux";14import {15	driverStatusCall,16	showDriverStatusLoading,17	clearDriverStatusRecord18} from "../../actions/index";19class DriverStatusScreen extends Component {20	constructor(props) {21		super(props);22		this.state = {23			loading: false,24			dashboardData: '',25		}26	}27	state = {28		isActive: false,29		showRedBulb: true30	};31	componentWillMount()32	{33		if (this.props.driverStatusResponseData != undefined && this.props.driverStatusResponseData != '') {34			this.props.clearDriverStatusRecord();35		}36	}37	componentDidMount() {38		39		BackHandler.addEventListener('hardwareBackPress', this.onBackPress);40	}41	componentWillUnmount() {42		BackHandler.removeEventListener('hardwareBackPress', this.onBackPress);43	}44	onBackPress() {45		if (Actions.state.index === 1) {46			47			BackHandler.exitApp();48			return false;49		}50		51		Actions.pop();52		return true;53	}54	renderBulbImage() {55		var imgSource = this.state.showRedBulb ?  GreenBulb : RedBulb ;56		return (57			<Image58				style={{ width: 128, height: 209 }}59				source={imgSource}60			/>61		);62	}63	componentWillReceiveProps(nextProps) {64		if (nextProps.driverStatusResponseData != undefined && nextProps.driverStatusResponseData != '') {65			66			if (nextProps.driverStatusResponseData.status == 200) {67				this.props.showDriverStatusLoading(false);68				AsyncStorage.setItem("userData", JSON.stringify(nextProps.driverStatusResponseData.data));69				Actions.pop();70				Actions.Dashboard();71			}72			else {73				this.props.showDriverStatusLoading(false);74				alert(nextProps.driverStatusResponseData.message);75				76			}77		}78	}79	onToggleButtonClicked() {80		81		AsyncStorage.getItem("userData").then((value) => {82			if (value) {83				userId = JSON.parse(value)._id;84				this.props.showDriverStatusLoading(true);85				if (JSON.parse(value).type == 'driver') {86					var driverStatus = {87						driverid: userId,88						dutystatus: 'off'89					};90				}91				this.props.driverStatusCall(driverStatus);92			}93		}).done();94	}95	render() {96		return (97			<View98				style={{ alignItems: 'center', marginTop: 50 }}>99				{this.renderBulbImage()}100				<Text101					style={{ fontSize: 25, color: '#14136d', fontWeight: 'bold', marginTop: 30, marginBottom: 20 }}>102					Current Status103				 </Text>104				<Text105					style={{ fontSize: 18, marginTop: 10, marginBottom: 40, marginStart: 10, marginEnd: 10 }}>106					Please select on Duty if you are Available and ready to Deliver !!107				 </Text>108				<FlipToggle109					value={this.state.isActive}110					buttonWidth={200}111					buttonHeight={50}112					buttonRadius={50}113					sliderWidth={50}114					sliderHeight={50}115					sliderRadius={50}116					onLabel={'ON DUTY'}117					offLabel={'OFF DUTY'}118					sliderOnColor="black"119					sliderOffColor="black"120					buttonOnColor="green"121					buttonOffColor="red"122					labelStyle={{ fontSize: 16, color: 'white' }}123					onToggle={(value) => { this.setState({ isActive: value, showRedBulb: !this.state.showRedBulb }), this.onToggleButtonClicked() }}124				/>125			</View>126		);127	}128}129const mapStateToProps = ({ driverStatusReducer }) => {130	const { driverStatusResponseData, isLoading } = driverStatusReducer;131	return {132		driverStatusResponseData: driverStatusResponseData,133		isLoading: isLoading134	}135}...

Full Screen

Full Screen

firebase.js

Source:firebase.js Github

copy

Full Screen

1import store from '../store'2import {setStrike, setPhase, setDriverStatus, setNavigatorStatus} from '../reducers/strike-phase'3import $ from 'jquery'4// FIREBASE MODULE5/* global firebase location */6var config = {7  apiKey: API_KEY,8  authDomain: AUTH_DOMAIN,9  databaseURL: DATABASE_URL,10  projectId: PROJECT_ID,11  storageBucket: STORAGE_BUCKET,12  messagingSenderId: MESSAGING_SENDER_ID13}14firebase.initializeApp(config)15console.log('FIREBASE initialized')16export const setupDataBase = (referenceString) => firebase.database().ref(referenceString)17const roomName = location.hash.substring(1, location.hash.length)18const strikesDB = setupDataBase(`${roomName}/strikes`)19const phaseDB = setupDataBase(`${roomName}/phase`)20const navigatorStatusDB = setupDataBase(`${roomName}/navigatorStatus`)21const driverStatusDB = setupDataBase(`${roomName}/driverStatus`)22export const startSyncingPhaseAndStrikes = isNavigator => {23  if (!isNavigator) {24    // DRIVER WRITE ONLY for strikes and phases25    const initialState = store.getState()26    let currentStrikes = initialState.strikes27    let currentPhase = initialState.phase28    strikesDB.set(currentStrikes)29    phaseDB.set(currentPhase)30    driverStatusDB.set(true)31    const handleChange = () => {32      let previousStrikes = currentStrikes33      let previousPhase = currentPhase34      let state = store.getState()35      let currentStrikes = state.strikes36      let currentPhase = state.phase37      if (previousStrikes !== currentStrikes) {38        strikesDB.set(currentStrikes)39        // console.log('Strikes changed from', previousStrikes, 'to', currentStrikes)40      }41      if (previousPhase !== currentPhase) {42        // console.log('Phase changed from', previousPhase, 'to', currentPhase)43        phaseDB.set(currentPhase)44      }45    }46    const unsubscribe = store.subscribe(handleChange)47    navigatorStatusDB.on('value', (snapshot) => {48      const navigatorStatus = snapshot.val()49      if (navigatorStatus) {50        store.dispatch(setNavigatorStatus(true))51      } else {52        store.dispatch(setNavigatorStatus(false))53      }54    })55    // Set status on exit56    $(window).on('beforeunload', () => {57      driverStatusDB.set(false)58    })59  } else {60    // NAVIGATOR READONLY61    navigatorStatusDB.set(true)62    strikesDB.on('value', (snapshot) => {63      const state = store.getState()64      const DBStrikes = snapshot.val()65      let currentStrikes = state.strikes66      // console.log('CURRENT STRIKES: ', currentStrikes)67      // console.log('DB STRIKES: ', DBStrikes)68      if (currentStrikes !== DBStrikes) {69        // console.log('INCREMENTING STRIKES')70        store.dispatch(setStrike(DBStrikes))71      }72    })73    // NAVIGATOR74    phaseDB.on('value', (snapshot) => {75      const state = store.getState()76      let currentPhase = state.phase77      // console.log('CURRENT PHASE: ', currentPhase)78      const DBPhase = snapshot.val()79      // console.log('DB PHASE: ', DBPhase)80      if (currentPhase !== DBPhase) {81        // console.log('INCREMENTING PHASE')82        store.dispatch(setPhase(DBPhase))83      }84    })85    driverStatusDB.on('value', (snapshot) => {86      const driverStatus = snapshot.val()87      if (driverStatus) {88        store.dispatch(setDriverStatus(true))89      } else {90        store.dispatch(setDriverStatus(false))91      }92    })93    // Set status on exit94    $(window).on('beforeunload', () => {95      navigatorStatusDB.set(false)96    })97  }...

Full Screen

Full Screen

DriverStatusContainer.spec.js

Source:DriverStatusContainer.spec.js Github

copy

Full Screen

1import React from 'react';2import { shallow } from 'enzyme';3import DriverStatusContainer from './DriverStatusContainer';4jest.useFakeTimers();5const makeProps = props => ({6  available: false,7  initialFetch: true,8  rides: {9    isFetching: false,10  },11  ride_zone_stats: null,12  update_location_interval: 0,13  waiting_rides_interval: 0,14  fetchRides: () => {},15  fetchStatus: () => {},16  fetchRideZoneStats: () => {},17  submitAvailable: () => {},18  submitLocation: () => {},19  ...props,20});21describe('DriverStatusContainer', () => {22  it('fetches driver status on mount', () => {23    const mockedFetchStatus = jest.fn();24    const wrapper = shallow(25      <DriverStatusContainer26        {...makeProps({ fetchStatus: mockedFetchStatus })}27      />28    );29    expect(mockedFetchStatus).toHaveBeenCalledTimes(1);30  });31  it('fetches driver status every 60 seconds', () => {32    const mockedFetchStatus = jest.fn();33    const wrapper = shallow(34      <DriverStatusContainer35        {...makeProps({ fetchStatus: mockedFetchStatus })}36      />37    );38    const threeMinutes = 60 * 3 * 1000;39    jest.advanceTimersByTime(threeMinutes);40    expect(mockedFetchStatus).toHaveBeenCalledTimes(4);41  });42  it('renders an initial Loader', () => {43    const wrapper = shallow(<DriverStatusContainer {...makeProps()} />);44    expect(wrapper.find('Loading').length).toEqual(1);45  });46  it('renders RideContainer', () => {47    const wrapper = shallow(48      <DriverStatusContainer49        {...makeProps({ initialFetch: false, available: true })}50      />51    );52    expect(wrapper.find('RideContainer').length).toEqual(1);53  });54  it('renders Unavailable', () => {55    const wrapper = shallow(56      <DriverStatusContainer57        {...makeProps({ initialFetch: false, available: false })}58      />59    );60    expect(wrapper.find('Unavilable').length).toEqual(1);61  });...

Full Screen

Full Screen

DriverStatusActions.js

Source:DriverStatusActions.js Github

copy

Full Screen

1import {2    DRIVER_STATUS,3    SHOW_DRIVER_STATUS_LOADING,4    CLEAR_DRIVER_STATUS5                                6 } from './actionTypes';7import APIURLCONSTANTS from "../ApiUrlList";8export const showDriverStatusLoading =(value)=>{9    //10    return (dispatch) => {11      dispatch({12        type: SHOW_DRIVER_STATUS_LOADING,13        payload: value14      });15    }16  };17  export const driverStatusCall = ({driverid,dutystatus}) => {18    19    20    21   22  23    return (dispatch) => {24  25      //call the API and use the promise to check the response26      // in response callBack .then() call the dispatcher.27  28      fetch(APIURLCONSTANTS.DRIVER_STATUS_URL , {29        method: 'POST',30        headers: {31          'Accept': 'application/json',32          'Content-Type': 'application/json',33        },34        body: JSON.stringify({driverid,dutystatus})35      })36      .then( (response) => {37        38        return response.json();39      })40      .then( (responseJSON) => {41        42  43        dispatch({44          type:DRIVER_STATUS,45          payload: responseJSON46        });47          48       // const loaderHandler = require('react-native-busy-indicator/LoaderHandler').default.default;49        //loaderHandler.hideLoader();50      })51      .catch(e => {52        53        alert('Server not responding');54        dispatch({55          type: SHOW_DRIVER_STATUS_LOADING,56          payload: false57        });58  59      });60    }61  62  };63  export const clearDriverStatusRecord = () => ({64    type:CLEAR_DRIVER_STATUS...

Full Screen

Full Screen

strike-phase.js

Source:strike-phase.js Github

copy

Full Screen

1export const PASSING = 'PASSING'2export const FAILING = 'FAILING'3export const SET_STRIKE = 'SET_STRIKE'4export const SET_PHASE = 'SET_PHASE'5export const SET_NAVIGATOR_STATUS = 'SET_NAVIGATOR_STATUS'6export const SET_DRIVER_STATUS = 'SET_DRIVER_STATUS'7// #### INITIAL STATE #### //8const initialPhaseStrike = {9  phase: 1,10  strikes: 0,11  navigatorStatus: false,12  driverStatus: false,13}14// #### ACTION CREATORS #### //15export const addStrike = () => ({16  type: FAILING17})18export const addPhase = () => ({19  type: PASSING20})21export const setStrike = strikes => ({22  type: SET_STRIKE,23  strikes24})25export const setPhase = phase => ({26  type: SET_PHASE,27  phase28})29export const setNavigatorStatus = navigatorStatus => ({30  type: SET_NAVIGATOR_STATUS,31  navigatorStatus32})33export const setDriverStatus = driverStatus => ({34  type: SET_DRIVER_STATUS,35  driverStatus36})37// #### REDUCER #### //38export default function(state = initialPhaseStrike, action) {39  const newState = Object.assign({}, state)40  switch (action.type) {41  case PASSING:42    newState.phase ++43    break44  case FAILING:45    newState.strikes ++46    break47  case SET_PHASE:48    newState.phase = action.phase49    break50  case SET_STRIKE:51    newState.strikes = action.strikes52    break53  case SET_NAVIGATOR_STATUS:54    newState.navigatorStatus = action.navigatorStatus55    break56  case SET_DRIVER_STATUS:57    newState.driverStatus = action.driverStatus58    break59  default:60    return state61  }62  return newState...

Full Screen

Full Screen

DashboardReducer.js

Source:DashboardReducer.js Github

copy

Full Screen

1import {2    DASHBOARD_API,3    SHOW_DASHBOARD_LOADING,4    DRIVER_STATUS,5    CLEAR_DRIVER_STATUS_RESPONSE,6    7} from "../actions/actionTypes";8const INITIAL_STATE = {9    dasboardResponseData: '',10    driverStatusResData: '',11    isLoading: false12}13export default (state = INITIAL_STATE, action) => {14    switch (action.type) {15        case DASHBOARD_API:16            return { ...state, dasboardResponseData: action.payload }17        case SHOW_DASHBOARD_LOADING:18            return { ...state, isLoading: action.payload }19        case DRIVER_STATUS:20            return { ...state, driverStatusResData: action.payload }21            case CLEAR_DRIVER_STATUS_RESPONSE:22            return { ...state, driverStatusResData:'' }23            24        default:25            return state;26    }...

Full Screen

Full Screen

DriverStatusReducer.js

Source:DriverStatusReducer.js Github

copy

Full Screen

1import {2    DRIVER_STATUS,3    SHOW_DRIVER_STATUS_LOADING,4    CLEAR_DRIVER_STATUS5                                6 } from '../actions/actionTypes';7 const INITIAL_STATE = {8    9    driverStatusResponseData: '',10    isLoading: false11}12export default (state = INITIAL_STATE, action) => {13    switch (action.type) {14  15        case DRIVER_STATUS:16            return { ...state, driverStatusResponseData: action.payload }17        case SHOW_DRIVER_STATUS_LOADING:18            return { ...state, isLoading: action.payload }19            case CLEAR_DRIVER_STATUS:20            return { ...state, driverStatusResponseData: '' }21        default:22            return state;23    }...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { remote } = require('webdriverio')2async function main() {3    const browser = await remote({4        capabilities: {5        }6    })7    await browser.status()8    await browser.deleteSession()9}10main().catch((e) => console.error(e))

Full Screen

Using AI Code Generation

copy

Full Screen

1const { BaseDriver } = require('appium-base-driver');2const driver = new BaseDriver();3const status = await driver.status();4console.log(status);5const { XCUITestDriver } = require('appium-xcuitest-driver');6const driver = new XCUITestDriver();7const status = await driver.status();8console.log(status);

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 Base 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