无法在真实设备上运行appium脚本。得到一个错误的应用程序错误
我想在eclipse中执行这个java代码,使用Appium和一个使用USB连接的真实设备。我无法对设备中安装的应用程序进行测试。无法在真实设备上运行appium脚本。得到一个错误的应用程序错误
package appiumproject;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class StartApplication {
private static AndroidDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "/sdcard/Android/data/");
File app = new File(appDir, "com.alensw.PicFolder");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName", "BX9034M10V");
capabilities.setCapability("platformVersion", "4.1.2");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.alensw.PicFolder");
//capabilities.setCapability("appActivity", "com.amazon.mShop.home.HomeActivity");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
Thread.sleep(10000);
driver.quit();
而下面是我在Eclipse控制台得到错误。有人可以让我知道错误的原因:'错误的应用程序' 如何从Android设备给app,appActivity的classPathRoot?
}线程“main”中的异常org.openqa.selenium.SessionNotCreatedException:无法创建新的会话。 (原始错误:错误的应用程序:C:\ Users \ admin \ workspace \ AppiumProject \ sdcard \ Android \ data \ com.alensw.PicFolder。应用程序路径需要是绝对的,或者相对于appium服务器的安装目录, (警告:服务器没有提供任何堆栈跟踪信息) 命令持续时间或超时:错误:使用本地应用程序,但没有以.zip,.ipa或.apk结尾) 0毫秒 构建信息:版本:'3.3.1',修订:'5234b32',时间:'2017-03-10 09:04:52 -0800' 系统信息:主机:'ADMIN-PC',ip: '10.0.0.63',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_121' 驱动程序信息:driver.version:AndroidDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInst ANCE(未知来源) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在java.lang.reflect.Constructor.newInstance(未知来源) 在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java :216) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) 在io.appium.java_client.remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:160) 在io.appium.java_client .remote.AppiumProtocolHandShake.createSession(AppiumProtocolHandShake.java:75) 在io.appium.java_client.remote.AppiumCommandExecutor.doExecute(AppiumCommandExecutor.java:111) 在io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java :162) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) 在io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) 在io.appium.java_client.AppiumDriver.execute( AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244) at org。 (DefaultWebDriver.java:131) at org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:144) at io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:38 ) at io.appium.java_client.AppiumDriver。(AppiumDriver.java :88) at io.appium.java_client.AppiumDriver。(AppiumDriver.java:112) at io.appium.java_client.android.AndroidDriver。(AndroidDriver.java:73) at appiumproject.StartApplication.main(StartApplication.java :29)
}
在下面的功能中,您需要提及路径。apk文件
capabilities.setCapability("app", app.getAbsolutePath());
应该象下面这样:
capabilities.setCapability("app","path of apk file");
我只是尝试这样做capabilities.setCapability( “应用程序”, “/ SD卡/安卓/数据/”);仍然是相同的错误,@SaiPawan –
在末尾添加.apk文件名称,如“/sdcard/Android/data/sample.apk” – SaiPawan
或者在桌面上保留该apk文件并给出该路径 – SaiPawan