当前位置: 首页 > 知识库问答 >
问题:

在Android第三方设备上运行appium必须使用哪些文件?

袁志专
2023-03-14

我第一次使用阿皮安。我想在第三方安装的应用程序上运行一个简单的自动化。我想为该特定应用程序配置appium服务器。

我没有什么问题:

>

  • 哪些字段是强制性的?

    ➜  ~  echo $JAVA_HOME
    /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
    
    ✔ ANDROID_HOME is set to "/Users/eladb/MyWorkspace2/adt-bundle-mac-x86_64/sdk/"
    ✔ JAVA_HOME is set to "/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home."
    ✔ ADB exists at /Users/eladb/MyWorkspace2/adt-bundle-mac-x86_64/sdk/platform-tools/adb
    ✔ Android exists at /Users/eladb/MyWorkspace2/adt-bundle-mac-x86_64/sdk/tools/android
    ✔ Emulator exists at /Users/eladb/MyWorkspace2/adt-bundle-mac-x86_64/sdk/tools/emulator
    ✔ Android Checks were successful.
    
    ✔ All Checks were successful
    ➜  ~
    

    然而阿皮姆说:

    info: [debug] Responding to client with success: {"status":0,"value":{"build":{"version":"1.3.5","revision":"a124a15677e26b33db16e81c4b3b34d9c6b8cac9"}}}
    info: <-- GET /wd/hub/status 200 0.927 ms - 104 {"status":0,"value":{"build":{"version":"1.3.5","revision":"a124a15677e26b33db16e81c4b3b34d9c6b8cac9"}}}
    
    info: --> POST /wd/hub/session {"desiredCapabilities":{"appPackage":"com.grindrapp.android","appActivity":".activity.SplashActivity","platformVersion":"4.4.2","browserName":"","platformName":"Android","deviceName":"10.0.0.9:5555"}}
    
    info: Client User-Agent string: Apache-HttpClient/4.3.4 (java 1.5)
    
    info: [debug] Didn't get app but did get Android package, will attempt to launch it on the device
    
    info: [debug] Creating new appium session e232fa9d-a70c-4de9-84e7-d86441cc9dc6
    
    info: Starting android appium
    
    info: [debug] Getting Java version
    
    info: [debug] Cleaning up android objects
    
    info: [debug] Cleaning up appium session
    
    info: [debug] Error: Could not get the Java version. Is Java installed?
        at /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/android/android-common.js:1040:17
        at ChildProcess.exithandler (child_process.js:735:7)
        at ChildProcess.emit (events.js:110:17)
        at maybeClose (child_process.js:1008:16)
        at Socket.<anonymous> (child_process.js:1176:11)
        at Socket.emit (events.js:107:17)
        at Pipe.close (net.js:476:12)
    
    error: Failed to start an Appium session, err was: Error: Could not get the Java version. Is Java installed?
    
    info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not get the Java version. Is Java installed?)","origValue":"Could not get the Java version. Is Java installed?"},"sessionId":null}
    info: <-- POST /wd/hub/session 500 87.838 ms - 222 
    
    info: --> GET /wd/hub/status {}
    

    我用的是appium 1.3.5

  • 共有1个答案

    宰父霖
    2023-03-14

    您需要提到以下字段:

    1. 应用程序路径
    2. 包名称
    3. 启动活动(您可以要求开发人员查找apk文件的启动活动)
    4. 设备
    5. SDK路径
    6. 引导端口
    7. 服务器地址(默认为127.0.0.1)
    8. 端口(默认情况下运行于4723)

    如果您不想在Appium中提到这些,也可以通过使用capabilities类在脚本中提到。

    DesiredCapabilities capabilities = new DesiredCapabilities();
                capabilities.setCapability("platformName", "Android");
                capabilities.setCapability("deviceName", "Android");
                capabilities.setCapability("platformVersion", "4.4.2");
                capabilities.setCapability("appPackage", "something");
                capabilities.setCapability("appActivity", "something");
                capabilities.setCapability("udid", udid);
    
     类似资料:
    • 我是Appium的新手,尝试使用Appium和Selenium(Java)并行运行2台android设备,但只有1台设备在运行我的测试脚本。下面是我的测试脚本(junit),我很难尝试解决这个问题。我没有同时使用任何网格或云网格(SauceLabs/BrowserStack),因为我现在想在本地监视它。 我不是很确定我需要在这里补充什么细节,但我很乐意回答任何问题和建议,将非常感谢。 提前谢谢!!

    • 控制台错误 有人面临这个问题吗?

    • 我正在使用Windows8。我正在尝试在设备上运行应用程序。找不到我的设备,设备USB调试已启用。此外,我已经安装了相同的驱动程序使用管理我也安装了谷歌USB驱动程序包。但仍然找不到该设备。 拜托,有人能帮忙吗

    • 我想在Android设备上运行一些需要根权限的命令。这些命令应该使用java代码执行,因此应用程序本身应该能够运行这些命令,而不需要将设备连接到个人电脑并使用shell运行这些命令。 我使用了,然后使用了我想要运行的命令(chmod 666)。chmod666需要一个根设备才能正常运行,因此我尝试先使用获得超级用户权限,然后尝试运行它。我将java代码放在onCreate方法中。这是我的密码: 但

    • TL;DR:我只能对某个设备运行一次测试,然后每隔一次尝试将我的应用程序连接到ADB会话,手动或通过Appium服务器调用,都会失败。如何解决这个问题,以便能够恢复自动化测试? 我的设备的Appium desired_capabilities包括。除设备标识符之外的所有其他desired_capabilities都在所有其他设备之间共享并适用于所有其他设备。 直到将添加到一个测试中,才观察到此错误

    • 目标:因为我是新来Appium的。我正在尝试在Ubuntu上使用Appium网格在多个android设备上并行自动化Appium测试 我成功启动了一个网格中心服务器和两个具有不同端口的节点 问题:无法同时在两台设备上运行测试用例(我确信问题出在我如何设计框架上)。我不知道如何传递两个设备的能力,同时启动设备(主要问题)。我必须为此使用多线程吗?如果是,那么如何使用 实际:当我在同一个设备上运行多个