有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将应用程序文件正确添加到appium所需的功能?

我用的是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);

这项工作做得很好。 但当我用应用下载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


共 (3) 个答案

  1. # 1 楼答案

    你的应用程序和脚本需要在同一个目录中,或者你应该指定到的完整路径。apk文件以使其工作

  2. # 2 楼答案

    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);
    
  3. # 3 楼答案

    试试这个而不是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");