【问题标题】:How can i launch an iOS app which installed already using appium如何启动已经使用 appium 安装的 iOS 应用程序
【发布时间】:2021-01-02 18:08:28
【问题描述】:

为了测试注册中的重复,我需要关闭并重新启动iOS应用程序。任何人都可以提供最好和简单的脚本来关闭应用程序并使用Appium和JAVA在iOS中重新启动相同的应用程序?

【问题讨论】:

    标签: appium appium-ios


    【解决方案1】:

    可以通过以下方式实现:

    import io.appium.java_client.AppiumDriver;
    import io.appium.java_client.MobileElement;
    import io.appium.java_client.android.AndroidDriver;
    import io.appium.java_client.remote.MobileCapabilityType;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    
    import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class SampleTest {
        AppiumDriver<?> appiumDriver;
        final String URL_STRING = "http://127.0.0.1:4723/wd/hub";
        URL url = new URL(URL_STRING);
    
        public SampleTest() throws MalformedURLException {
        }
    
        @BeforeTest
        public void beforeTest() {
             File appDir = new File("path to ipa file");
        File app = new File(appDir, "app.ipa");
        DesiredCapabilities iOSCapabilities = new DesiredCapabilities();
        iOSCapabilities.setCapability(MobileCapabilityType.PLATFORM, "iOS");
        iOSCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
        iOSCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone6s");
        iOSCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.2.1");
        iOSCapabilities.setCapability(MobileCapabilityType.UDID, "udid");
        iOSCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
        appiumDriver = new IOSDriver(url, iOSCapabilities);
        }
    
        @Test
        public void test() {
            //perform some test
        }
    
        @AfterTest
        public void afterTest() {
            // following command will close and restart the app
            appiumDriver.resetApp();
        }
    }
    

    您可能需要查看this 了解更多详情。

    【讨论】:

      【解决方案2】:

      使用驱动driver.resetApp(),像这样

      try{
            LOG.debug("reset app");
            driver.resetApp();
          } catch (WebDriverException e){
            LOG.error("ERROR on reset app, e: ",e);
          }
      

      【讨论】:

        【解决方案3】:

        Appium 允许您在设备上启动任何预安装的应用程序,因此您可以先使用closeApp,然后再使用launchApp 和您的应用程序包 id:

                    // closing app
                    driver.closeApp();
                    // launch app again
                    HashMap<String, Object> args = new HashMap<>();
                    args.put("bundleId", APP_BUNDLE_ID);
                    driver.executeScript("mobile: launchApp", args);
        

        【讨论】:

          猜你喜欢
          • 2020-07-29
          • 2017-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多