我正在编写一个自动化程序,从Java代码开始,必须安装Android应用程序,然后再卸载。
示例代码段为:
Process p = Runtime.getRunTime().exec(adb.exe install -s device_id apks\app_package_name);
我在app_package_name上面使用了正确的值,没有.apk
文件扩展名和device_id
。
这不会在设备上安装该应用。该应用是用户应用。
如果我必须在应用程序(在清单文件中)或其他地方(或在Java程序中)进行任何设置,请告诉我。
答案 0 :(得分:0)
以编程方式执行时,您不需要使用adb,
在您的计算机中指定apk路径,默认情况下会将应用程序推送到设备,并在应用程序的启动器活动/主屏幕中登陆,尝试使用以下代码,
import io.appium.java_client.android.AndroidDriver;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
public class installApp{
static AndroidDriver<WebElement> driver;
private static DesiredCapabilities capa = null;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
capa = new DesiredCapabilities();
capa.setCapability("automationName","Appium");
capa.setCapability("platformName","Android");
capa.setCapability("deviceName","device name");
capa.setCapability("udid", "ur device udid");
capa.setCapability("platformVersion","5.1");
capa.setCapability("newCommandTimeout","30");
capa.setCapability("appPackage", "com.your app's package name");
capa.setCapability("appActivity", "com.your app's launcher activity");
driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capa);
}
}