Appium为什么要推送apk?

Why does Appium push the apk?

我目前正在从事一个用于设置平板电脑的自动化项目。我对 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);
}
AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(serveraddress, capabilities);

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

开启新session时不能推送多个apk,以后可以调用driver.installApp(apkPath);方法安装apk。

对于问题 1) 这些行中的哪一行正在推送 apk?

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

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

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

对于问题2)如果我想推送多个apks怎么办?

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

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

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