启动类

public static AndroidDriver<AndroidElement> driver; /** * >aapt d badging GJDMALL-V2.2.0.3349-436-debug-99a5c6a.apk|findstr "package launchable-activity" * package: name='com.jingdong.th.app' versionCode='3346' versionName='2.2.0' platformBuildVersionName='8.0.0' * launchable-activity: name='com.jingdong.global.app.welcome.WelcomeActivity' label='' icon='' * 初始化 * @return * @throws Exception */ public static AndroidDriver<AndroidElement> initDriver() throws Exception { File app = new File(".\\apk\\GJDMALL-V2.2.0.3349-436-debug-99a5c6a.apk"); DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "android"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "android"); caps.setCapability(MobileCapabilityType.APPIUM_VERSION, "4.4.2"); //caps.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); //自动安装 caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "127.0.0.1:62001"); caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600); //caps.setCapability(MobileCapabilityType.FULL_RESET, true); //结束后会卸载程序 caps.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.jingdong.th.app"); caps.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.jingdong.global.app.welcome.WelcomeActivity"); caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true); caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true); caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true); driver = new AndroidDriver<>( new URL("http://127.0.0.1:4723/wd/hub"), caps); return driver; }出现错误

HTTP] --> POST /wd/hub/session[HTTP] {"desiredCapabilities":{"appActivity":"com.jingdong.global.app.welcome.WelcomeActivity","appPackage":"com.jingdong.th.app","newCommandTimeout":600,"noSign":true,"appiumVersion":"4.4.2","automationName":"Appium","unicodeKeyboard":true,"platformName":"Android","udid":"127.0.0.1:62001","resetKeyboard":true},"capabilities":{"firstMatch":[{"appium:appActivity":"com.jingdong.global.app.welcome.WelcomeActivity","appium:appPackage":"com.jingdong.th.app","appium:appiumVersion":"4.4.2","appium:automationName":"Appium","appium:newCommandTimeout":600,"appium:noSign":true,"platformName":"android","appium:resetKeyboard":true,"appium:udid":"127.0.0.1:62001","appium:unicodeKeyboard":true}]}}[debug] [W3C] Calling AppiumDriver.createSession() with args: [{"appActivity":"com.jingdong.global.app.welcome.WelcomeActivity","appPackage":"com.jingdong.th.app","newCommandTimeout":600,"noSign":true,"appiumVersion":"4.4.2","automationName":"Appium","unicodeKeyboard":true,"platformName":"Android","udid":"127.0.0.1:62001","resetKeyboard":true},null,{"firstMatch":[{"appium:appActivity":"com.jingdong.global.app.welcome.WelcomeActivity","appium:appPackage":"com.jingdong.th.app","appium:appiumVersion":"4.4.2","appium:automationName":"Appium","appium:newCommandTimeout":600,"appium:noSign":true,"platformName":"android","appium:resetKeyboard":true,"appium:udid":"127.0.0.1:62001","appium:unicodeKeyboard":true}]}][debug] [BaseDriver] Event 'newSessionRequested' logged at 1561284179583 (18:02:59 GMT+0800 (中国标准时间))[Appium] Could not parse W3C capabilities: 'deviceName' can't be blank[Appium] Trying to fix W3C capabilities by merging them with JSONWP caps[BaseDriver] The capabilities ["appActivity","appPackage","appiumVersion","automationName","newCommandTimeout","noSign","resetKeyboard","udid","unicodeKeyboard"] are not standard capabilities and should have an extension prefix*[Appium] Could not parse fixed W3C capabilities: 'deviceName' can't be blank. Falling back to JSONWP protocol*[debug] [BaseDriver] Event 'newSessionStarted' logged at 1561284179596 (18:02:59 GMT+0800 (中国标准时间))[debug] [MJSONWP] Encountered internal error running command: Error: Could not find a driver for automationName 'Appium' and platformName 'Android'. Please check your desired capabilities.[debug] [MJSONWP] at AppiumDriver.getDriverAndVersionForCaps (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\lib\appium.js:205:11)[debug] [MJSONWP] at AppiumDriver.getDriverAndVersionForCaps [as createSession] (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\lib\appium.js:268:66)[debug] [MJSONWP] at AppiumDriver.executeCommand (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_appium-base-driver@3.15.4@appium-base-driver\lib\basedriver\driver.js:301:19)[debug] [MJSONWP] at AppiumDriver.executeCommand (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\lib\appium.js:420:26)[debug] [MJSONWP] at executeCommand (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_appium-base-driver@3.15.4@appium-base-driver\lib\protocol\protocol.js:352:34)[debug] [MJSONWP] at asyncHandler (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_appium-base-driver@3.15.4@appium-base-driver\lib\protocol\protocol.js:489:15)[debug] [MJSONWP] at Layer.handle [as handle_request] (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\layer.js:95:5)[debug] [MJSONWP] at next (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\route.js:137:13)[debug] [MJSONWP] at Route.dispatch (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\route.js:112:3)[debug] [MJSONWP] at Layer.handle [as handle_request] (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\layer.js:95:5)[debug] [MJSONWP] at C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:281:22[debug] [MJSONWP] at Function.process_params (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:335:12)[debug] [MJSONWP] at next (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:275:10)[debug] [MJSONWP] at logger (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_morgan@1.9.1@morgan\index.js:144:5)[debug] [MJSONWP] at Layer.handle [as handle_request] (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\layer.js:95:5)[debug] [MJSONWP] at trim_prefix (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:317:13)[debug] [MJSONWP] at C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:284:7[debug] [MJSONWP] at Function.process_params (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:335:12)[debug] [MJSONWP] at next (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_express@4.16.4@express\lib\router\index.js:275:10)[debug] [MJSONWP] at C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_body-parser@1.18.3@body-parser\lib\read.js:130:5[debug] [MJSONWP] at invokeCallback (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_raw-body@2.3.3@raw-body\index.js:224:16)[debug] [MJSONWP] at done (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_raw-body@2.3.3@raw-body\index.js:213:7)[debug] [MJSONWP] at IncomingMessage.onEnd (C:\Users\liwen406\AppData\Roaming\npm\node_modules\appium\node_modules\_raw-body@2.3.3@raw-body\index.js:273:7)[debug] [MJSONWP] at emitNone (events.js:106:13)[debug] [MJSONWP] at IncomingMessage.emit (events.js:208:7)[debug] [MJSONWP] at endReadableNT (_stream_readable.js:1055:12)[debug] [MJSONWP] at _combinedTickCallback (internal/process/next_tick.js:138:11)[debug] [MJSONWP] at process._tickCallback (internal/process/next_tick.js:180:9)

解决

public static AndroidDriver<AndroidElement> initDriver() throws Exception { File app = new File(".\\apk\\GJDMALL-V2.2.0.3349-436-debug-99a5c6a.apk"); DesiredCapabilities caps = new DesiredCapabilities();// caps.setCapability(MobileCapabilityType.DEVICE_NAME, "android");// caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "android"); caps.setCapability(MobileCapabilityType.APPIUM_VERSION, "4.4.2"); //caps.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); //自动安装// caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "127.0.0.1:62001"); caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 600); //caps.setCapability(MobileCapabilityType.FULL_RESET, true); //结束后会卸载程序 caps.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.jingdong.th.app"); caps.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.jingdong.global.app.welcome.WelcomeActivity"); caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true); caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true); caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true); driver = new AndroidDriver<>( new URL("http://127.0.0.1:4723/wd/hub"), caps); return driver; }

正常启动appium