import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
public class Demo {
AndroidDriver driver =null;
DesiredCapabilities capabilities;
File app = new File("/data/app/com.philips.sleepmapper.root-1/base.apk");
@Test
public void invokeApp() throws MalformedURLException
{
capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", "Appium");
capabilities.setCapability("paltformName", "Android");
capabilities.setCapability("platformVersion", "6.0.1");
capabilities.setCapability("deviceNmae", "Galaxy S6");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage","com.philips.sleepmapper.root");
capabilities.setCapability("appactivity","com.philips.sleepmapper.activity.SplashScreenActivity");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
}
执行此代码时,我收到以下错误:
失败:invokeApp org.openqa.selenium.SessionNotCreatedException:A 无法创建新会话。 (原始错误:糟糕的应用: C:\数据\应用\ com.philips.sleepmapper.root-1 \ base.apk。应用路径需要 是绝对的,或相对于appium服务器。
答案 0 :(得分:2)
您的应用程序APK的路径设置不正确。我需要知道你的文件结构才能给出确切的答案,但这是我认为错误的。
您很可能尝试在C:\path\to\my\project\data\app\com.philips.sleepmapper.root-1\base.apk
如果您在C:\path\to\my\project
中运行Appium并尝试将相对路径传递给APK,那么您将错过Appium测试代码中的点。将代码中的路径更改为
File app = new File("./data/app/com.philips.sleepmapper.root-1/base.apk");
要使其从任何文件夹(绝对路径)起作用,请将代码更改为
File app = new File("C:\path\to\my\project\data\app\com.philips.sleepmapper.root-1\base.apk");
请记住将path\to\my\project
替换为您正在使用的真实路径。