请帮我!!!。我正在尝试自动化一个android应用程序。我正在使用 JAVA。如果我从命令行启动 appium 服务器并运行测试用例,它工作正常。但是,当我使用 Appium 桌面客户端(版本 - 1.13.0)启动 appium 服务器时,出现错误。为什么使用 Appium 桌面客户端(版本 - 1.13.0)时测试用例一直失败,而使用 appium 命令行工具运行相同的代码时可以正常工作?
我正在使用Java 8Appium(1.14.0)
以及Appium Desktop version(1.13.0)
以下 jar 文件
- Selenium 远程驱动程序-3.14.0
- Java-client-7.0.0
Apache commong 语言文件 - 3.7
public static AndroidDriver<AndroidElement> InstallInvokeAPK() throws MalformedURLException { //Define the source folder File f1 = new File("src"); //Define the destination and name of the APK file File f2 = new File(f1, "New Driver app-excel-debug.apk"); //COnfiguration setting to work with the application DesiredCapabilities cap = new DesiredCapabilities();//Creating an object of Desiredcapabilities class cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);//Defining the platform cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Moto G (5) Plus");//Defining the Mobile handset name cap.setCapability(MobileCapabilityType.UDID, "ZY223Z68JG"); cap.setCapability("automationName", "UiAutomator2"); cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 100);//Defining the maximum timeout period to execute command cap.setCapability("autoGrantPermissions", "true"); cap.setCapability(MobileCapabilityType.APP, f2.getAbsolutePath()); //Use the Android Driver to work with Android Platform Elements AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap); return driver; public class TestApp extends Example2{ public static void main(String[] args) throws InterruptedException, MalformedURLException { AndroidDriver<AndroidElement> driver = InstallInvokeAPK(); //AndroidDriver<AndroidElement> driver = PackageActivity("com.e9ine.android.driver", "com.e9ine.android.driver.module.AuthenticationModule.view.activity.SpalshScreenActivity"); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.findElement(By.xpath("//android.widget.EditText[@text='Username']")).sendKeys("abc@xyz.com"); driver.findElement(By.id("editText_password")).sendKeys("1234"); driver.navigate().back();
这些是appium日志:
并提供了 MJSONWP 所需的功能 {"app":"C:\Users\e9ine-QA... [BaseDriver] 创建具有 W3C 功能的会话:{"alwaysMatch":{"platformNa... [BaseDriver] Capability 'autoGrantPermissions'从字符串更改为布尔值。这可能会导致意外行为 [BaseDriver] 使用会话 id 创建的会话:384a04e7-e07c-46ce-887e-a4f69f0993f2 [BaseDriver] 使用本地应用程序 'C:\Users\e9ine-QA\Appium\MobileAutomation\src\New Driver app-excel -debug.apk' [UiAutomator2] 检查应用程序是否实际存在 [ADB] 使用 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe' 中的 'adb.exe' [AndroidDriver] 检索设备列表 [ADB] 尝试查找已连接的 android 设备 [ADB] 正在获取已连接的设备... [UiAutomator2] 无法删除端口转发'执行 adbExec 时出错。原始错误:'Command 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG forward --remove tcp:8200' exited with code 1'; Stderr: '错误:未知的主机服务'; 代码:'1'' [ADB] 运行 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk ' [ADB] 发送命令时出错,重新连接设备并重试:shell,getprop,ro.build.version.sdk [ADB] 尝试查找已连接的 android 设备 [ADB] 正在连接设备... [ADB] 1 个设备) connected [BaseDriver] Event 'newSessionStarted' logging at 1565779812994 (16:20:12 GMT+0530 (India Standard Time)) [W3C] Encountered internal error running command: 错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:“命令 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk”退出代码 1 '; Stderr:'错误:设备仍在连接'; 代码:亚行的“1”[W3C]。(C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-adb\lib\tools\adb-commands.js:98:13) [W3C] 在 Generator.throw () [W3C] 在asyncGeneratorStep (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules@babel\runtime\helpers\asyncToGenerator.js:3:24) [W3C] 在 _throw (C:\Program Files\Appium\resources\ app\node_modules\appium\node_modules@babel\runtime\helpers\asyncToGenerator.js:29:9) [W3C] 在运行时 (C:
硒日志:
线程“主”org.openqa.selenium.SessionNotCreatedException 中的异常:无法创建新的远程会话。请检查服务器日志以获取更多详细信息。原始错误:处理命令时发生未知的服务器端错误。原始错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:“命令 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk”退出代码 1 '; Stderr:'错误:设备仍在连接'; 代码:'1' 构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:25:48' 系统信息:主机:'DESKTOP-17I5IMK',ip:'192.168 .5.208',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_211' 驱动程序信息:driver.version:AndroidDriver 远程堆栈跟踪:UnknownError:处理命令时发生未知的服务器端错误。原始错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:“命令 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk”退出代码 1 '; Stderr:'错误:设备仍在连接'; 代码:'1' at getResponseForW3CError (C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:826:9) at asyncHandler (C:\ Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:447:37)在进程中。在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.lang.reflect.Method.invoke(Unknown Source) 的 InvocationTargetException ) 在 io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:186) ... 14 更多原因:org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:“命令 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk”退出代码 1 '; 标准错误:'错误:设备仍在连接'; 代码:'1' 构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:25:48' 系统信息:主机:'DESKTOP-17I5IMK',ip:'192.168 .5.208', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_211' 驱动程序信息: driver.version: AndroidDriver remote stacktrace: UnknownError : 处理命令时发生未知的服务器端错误。原始错误:获取设备 API 级别时出错。原始错误:执行 adbExec 时出错。原始错误:“命令 'C:\Users\e9ine-QA\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s ZY223Z68JG shell getprop ro.build.version.sdk”退出代码 1 '; Stderr:'错误:设备仍在连接'; 代码:'1'