为什么Appium推送apk?

时间:2016-03-31 21:02:09

标签: java android appium

我目前正致力于设置平板电脑的自动化项目。我对Selenium和Java非常熟悉。为了使这个问题变得简单,这些行中的哪一行正在推动apk?如果我想推多个apks怎么办?

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);
}

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

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

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

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

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

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

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

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