我使用了SauceLabs example
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("BROWSER_NAME", "Android");
capabilities.setCapability("VERSION", "4.4.2");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("platformName", "Android");
//zip file containing your app to be tested
capabilities.setCapability("app", "http://appium.s3.amazonaws.com/TestApp6.0.app.zip");
driver = new RemoteWebDriver
(new URL(MessageFormat.format("http://{0}:{1}@ondemand.saucelabs.com:80/wd/hub",
sauceUserName, sauceAccessKey)), capabilities);
这是完美的工作。 但是当我用app下载zip并切换到本地环境时
capabilities.setCapability("app", app.getAbsolutePath());
driver = new RemoteWebDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
我从appium控制台收到错误:
错误:无法启动Appium会话,错误是:错误:应用程序错误: /home/.../appium/assets/TestApp6.0.app.zip。应用路径需要 是绝对的,或相对于appium服务器安装目录,或URL 压缩文件或特殊应用程序名称。原因:App压缩拉链好了, 但是我们在其中找不到.app包。确保您的存档 包含.app包,没有别的
答案 0 :(得分:1)
尝试使用此代替RemoteWebDriver
:使用AndroidDriver
。
此外,如果您从localhost
开始提及IP地址,或只需输入"localhost"
。
capabilities.setCapability("app", app.getAbsolutePath());
driver = new AndroidDriver (new URL("http://localhost:4723/wd/hub"), capabilities);
创建一个名为"app"
的文件夹,并将测试Android应用放在那里。
示例代码:
File filePath = new File(System.getProperty("user.dir"));
File appDir = new File(filePath, "/app");
File app = new File(appDir, "yourapkfile.apk");
答案 1 :(得分:0)
您的应用和脚本需要位于同一目录中,或者您应指定.apk文件的完整路径以使其正常工作
答案 2 :(得分:0)
File app= new File("D:\\com.boondoggle.mortcalc-1.apk");
DesiredCapabilities capabilities= new DesiredCapabilities();
capabilities.setCapability("deviceName", "Redmi Note 3");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "6.0.1");
capabilities.setCapability("app", app.getAbsolutePath());
AndroidDriver driver= new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);