Helpful Settings   Desired Capabilities  Desired Capabilities are used to configure webdriver when initiating the session.
  Basic usage   Common Capabilities  Key  Type  Description platformName  String  Which platform the app/browser should be running on. { iOS / Android / Desktop } browserName  String  The name of the browser being used. { iOS: Safari } { Android: Chrome } { Desktop: Chrome / Electron } 
  App Capabilities  Key  Type  Description deviceName  String  The name of the Simulator such as 'iPhone 6' or 'Nexus 5x'. app  Stirng  The absolute local path or remote http URL to an .ipa or .apk file, or a .zip containing one of these. udid  String  Unique device identifier of the connected Device/Simulator or  device. autoAcceptAlerts  Boolean  Accept all iOS alerts automatically if they pop up. Default is false. autoDismissAlerts  Boolean  Dismiss all iOS alerts automatically if they pop up. Default is false. reuse  Number  0: Launch the simulator and install the app. 1 (default): Uninstall the app and reinstall the app. 2: Only reinstall the app. 3: Keep the simulator and app after testing. 
  Android-only Capabilities  Key  Type  Description package  String  Java package of the Android app you want to run. activity  String  Activity name for the Android activity you want to launch from your package. androidProcess  String  Process name for the chromedriver binding when test webview isWaitActivity  Boolean  Wait the app's main acitivity. Default is true. 
  iOS-only Capabilities  Key  Type  Description bundleId  String  Bundle ID of the app such as com.apple.Maps. 
  Electron-only Capabilities  Key  Type  Description uesrAgent  String  A user agent originating the request. extraHeaders  String  Extra headers separated by “\n”. 
  Puppeteer Capabilities  Key  Type  Description uesrAgent  String  A user agent originating the request. 
  Keycode   PC keycode  \uE002	"HELP" => 259 (0x00000103)\uE003	"BACK_SPACE" => 67 (0x00000043)\uE004	"TAB" => 61 (0x0000003d)\uE005	"CLEAR" => 28 (0x0000001c)\uE007	"ENTER" => 66 (0x00000042)\uE008	"SHIFT" => 59 (0x0000003b)\uE009	"CONTROL" => 113 (0x00000071)\uE00A	"ALT" => 57 (0x00000039)\uE00B	"PAUSE" => 121 (0x00000079)\uE00C	"ESCAPE" =>  111 (0x0000006f)\uE00E	"PAGE_UP" => 92 (0x0000005c)\uE00F	"PAGE_DOWN" => 93 (0x0000005d)\uE010	"END" => 123 (0x0000007b)\uE011	"HOME" => 122 (0x0000007a)\uE012	"ARROW_LEFT" => 21 (0x00000015)\uE013	"ARROW_UP" => 19 (0x00000013)\uE014	"ARROW_RIGHT" => 22 (0x00000016)\uE015	"ARROW_DOWN" => 20 (0x00000014)\uE016	"INSERT" => 124 (0x0000007c)\uE017	"DELETE" => 112 (0x00000070)\uE031	"F1" => 131 (0x00000083)\uE032	"F2" => 132 (0x00000084)\uE033	"F3" => 133 (0x00000085)\uE034	"F4" => 134 (0x00000086)\uE035	"F5" => 135 (0x00000087)\uE036	"F6" => 136 (0x00000088)\uE037	"F7" => 137 (0x00000089)\uE038	"F8" => 138 (0x0000008a)\uE039	"F9" => 139 (0x0000008b)\uE03A	"F10" => 140 (0x0000008c)\uE03B	"F11" => 141 (0x0000008d)\uE03C	"F12" => 142 (0x0000008e)\uE03D	"META" => 117 (0x00000075) Android keycode  \uE101 "POWER" =>  26 (0x0000001a)\uE102 "VOLUME_UP" => 24 (0x00000018)\uE103 "VOLUME_DOWN" => 25 (0x00000019)\uE104 "VOLUME_MUTE" => 164 (0x000000a4)\uE105 "HOME_SCREEN" => 3 (0x00000003)\uE106 "BACK BACK" => 4 (0x00000004)\uE107 "MENU MENU" => 82 (0x00000052)\uE108 "CAMERA" => 27 (0x0000001b)\uE109 "CALL" => 5 (0x00000005)\uE10A "END_CALL" => 6 (0x00000006)\uE10B "SEARCH" => 84 (0x00000054)\uE10C "DPAD_LEFT" => 21 (0x00000015)\uE10D "DPAD_UP" => 19 (0x00000013)\uE10E "DPAD_RIGHT" => 22 (0x00000016)\uE10F "DPAD_DOWN" => 20 (0x00000014)\uE110 "DPAD_CENTER" => 23 (0x00000017)android-reference-KeyEvent(opens new window)  
  iOS keycode  \uE105 "HOME_SCREEN HOME键" Locator  Locator  iOS  Android  PC name  label or value  content-desc or rawtext  element name xpath  xpath  xpath  xpath class name  class/type  class  element node name id  accessibility Id  resource Id  element id css  native unsupport  native	unsupport  element css 
  Touch Gestures  Type  Params  Example  Description tap  { x: 100,  y: 100 }  driver.touch('tap', { x: 100, y: 100}) | element.touch('tap')  点击某个坐标或者当前元素 doubleTap  { x: 100,  y: 100 }  driver.touch('doubleTap', { x: 100, y: 100}) | element.touch('doubleTap')  双击某个坐标或者当前元素 press  { x: 100,  y: 100, duration: 2 (单位 S) }  driver.touch('press', { x: 100, y: 100}) | element.touch('press', { duration: 2 })  长按某个坐标或者当前元素 pinch  { x: 100,  y: 100,scale: 2 (iOS), velocity: 1(iOS),  direction: "in" or "out"(Android), percent: 200(Android), duration: 2 (单位 S) }  iOS: element.touch('pinch', { scale: 2 }), Android: element.touch('pinch', { direction: "in", percent: 50 })  两只手指放大或者缩小当前元素 rotate (iOS Only)  { rotation: 6(弧度), velocity: 1 }  element.touch('rotate', { rotation: 6, velocity: 1 })  旋转当前元素 drag  { fromX: 100, fromY: 100, toX: 200, toY: 200, duration: 2(iOS,单位 S) }  driver.touch('drag', { fromX: 100, fromY: 100, toX: 200, toY: 200 }) | element.touch('drag', { toX: 200, toY: 200 })  拖拽一个元素或者在多个坐标之间移动 
  连续操作  连续执行多个 touch 操作,类似于下图的密码解锁。
 
  Last Updated:  5/18/2019, 4:51:50 PM