【问题标题】:Why does Appium push the apk?Appium为什么要推送apk?
【发布时间】:2016-04-01 15:46:30
【问题描述】:

我目前正在从事一个设置平板电脑的自动化项目。我非常熟悉 Selenium 和 Java。为了简单起见,这些行中的哪一行正在推送 apk?如果我想推送多个 apk 怎么办?

public class AppiumTest {

private static AndroidDriver<MobileElement> driver;

@BeforeTest
public void firstatest() throws MalformedURLException, InterruptedException {

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("appium-version", "1.4.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "4.4.2");
capabilities.setCapability("deviceName", "0123456789ABCDEF");
capabilities.setCapability("app", "/Users/User/Documents/Appium/1.apk"); // ########
capabilities.setCapability("appPackage", "FILL-IN-INFORMATION"); // ########
capabilities.setCapability("appActivity", "FILL-IN-INFORMATION"); // ########
URL serveraddress = new URL("http://127.0.0.1:4723/wd/hub");
AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(serveraddress, capabilities);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}

【问题讨论】:

    标签: java android appium


    【解决方案1】:
    AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(serveraddress, capabilities);
    

    上面的行将创建一个新会话,它会检查应用程序是否安装。如果没有,它将安装并打开应用程序。

    启动新会话时不能推送多个apks,但以后可以通过调用driver.installApp(apkPath);方法安装apks。

    【讨论】:

    • 如果我去掉这条线 AppiumDriver&lt;MobileElement&gt; driver = new AndroidDriver&lt;MobileElement&gt;(serveraddress, capabilities); 以及 appPackageappActivity 功能,我的测试还能运行吗?我主要使用 Appium 作为批量准备平板电脑的工具(安装 apk 并自动更改设置)。
    • 最新的 appium 不需要 appPackage 和 appActivity 功能。没有 AppiumDriver driver = new AndroidDriver(serveraddress, capabilities); line apk 无法安装。
    • 如果您的目标是安装多个 apk,那么您可以使用 adb 命令安装多个 apk。
    【解决方案2】:

    对于 Ques1) 其中哪一行正在推送 apk?

    capabilities.setCapability("app", "/Users/User/Documents/Appium/1.apk");
    

    如果您注释掉上面的行。初始化驱动程序时,Appium 不会安装应用程序。它只会搜索 appPackage 并重置应用程序。

    AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(serveraddress, capabilities);
    

    对于 Ques2) 如果我想推送多个 apk 怎么办?

    我不确定您是否可以通过使用功能来做到这一点。一种方法是通过编写一个通过 adb 安装应用程序的实用程序来安装具有功能的测试应用程序和其他应用程序。

    p = Runtime.getRuntime().exec(new String[]{ADB_PATH,"shell","pm install /path to apk on the test phone/"+apkName});
    

    看看它是否可以通过功能或驱动程序元素来完成会很有趣。如果社区提出建议,将不胜感激。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-30
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多