如何正确地将应用程序文件添加到appium Desired Capabilities?
How to add app file to appium Desired Capabilities correctly?
我用了 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 控制台收到错误消息:
error: Failed to start an Appium session, err was: Error: Bad app:
/home/.../appium/assets/TestApp6.0.app.zip. App paths need to
be absolute, or relative to the appium server install dir, or a URL to
compressed file, or a special app name. cause: App zip unzipped OK,
but we couldn't find a .app bundle in it. Make sure your archive
contains the .app package and nothing else
您的应用程序和脚本需要位于同一目录中,或者您应该指定 .apk 文件的完整路径才能正常工作
试试这个而不是 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");
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);
我用了 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 控制台收到错误消息:
error: Failed to start an Appium session, err was: Error: Bad app: /home/.../appium/assets/TestApp6.0.app.zip. App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. cause: App zip unzipped OK, but we couldn't find a .app bundle in it. Make sure your archive contains the .app package and nothing else
您的应用程序和脚本需要位于同一目录中,或者您应该指定 .apk 文件的完整路径才能正常工作
试试这个而不是 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");
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);