Appium-关闭一个iOS应用程序并重新打开另一个应用程序

Appium-关闭一个iOS应用程序并重新打开另一个应用程序,appium,appium-ios,Appium,Appium Ios,我有以下场景需要自动化。如何通过Appium实现这一点 1. Launch my application register a user with an gmail id. 2. Close the application. 3. Launch Safari browser and navigate to gmail login 4. Click on the registration link. 这里,挑战的部分是第2点和第3点。 可以断开Appium会话吗? Appium能否为Safari

我有以下场景需要自动化。如何通过Appium实现这一点

1. Launch my application register a user with an gmail id.
2. Close the application.
3. Launch Safari browser and navigate to gmail login
4. Click on the registration link.
这里,挑战的部分是第2点和第3点。 可以断开Appium会话吗?
Appium能否为Safari这样的预装应用程序启动新会话?

您可以使用相同的Appium服务器实例。无需终止服务器,但可能需要使用两个不同的驱动程序实例

  AppiumDriverLocalService service;

    IOSDriver iosDriver;

        public void setUp() throws IOException {
            service = AppiumDriverLocalService.buildDefaultService();
            service.start();
        }    

        public void startMyApplication(){
            DesiredCapabilities dc = new DesiredCapabilities();
            dc.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone");
            dc.setCapability(MobileCapabilityType.UDID, "3838n838fn38jf8n838ffabcdefg");
            dc.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
            dc.setCapability(MobileCapabilityType.APP, "com.your_package.name");

            iosDriver = new IOSDriver("http://localhost:4723/wd/hub", dc);
        }

        public void testMyGoogleLoginOnMyApplication(){
          //I intend to do something here
          //Once i am finished, I close my application
          iosDriver.quit();
        }

        public void startSafari(){
            DesiredCapabilities dc = new DesiredCapabilities();
            dc.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone");
            dc.setCapability(MobileCapabilityType.UDID, "3838n838fn38jf8n838ffabcdefg");
            dc.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
            dc.setCapability(MobileCapabilityType.APP, "com.safari_package.name");

            iosDriver = new IOSDriver("http://localhost:4723/wd/hub", dc);
        }

        public void testSafari(){
          //I intend to go to google and do stuff
          //Once i am finished, I close my application
          iosDriver.quit();
        }

        public void finished(){
            service.stop();
        }

您可以只使用相同的appium服务器实例。无需终止服务器,但可能需要使用两个不同的驱动程序实例

  AppiumDriverLocalService service;

    IOSDriver iosDriver;

        public void setUp() throws IOException {
            service = AppiumDriverLocalService.buildDefaultService();
            service.start();
        }    

        public void startMyApplication(){
            DesiredCapabilities dc = new DesiredCapabilities();
            dc.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone");
            dc.setCapability(MobileCapabilityType.UDID, "3838n838fn38jf8n838ffabcdefg");
            dc.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
            dc.setCapability(MobileCapabilityType.APP, "com.your_package.name");

            iosDriver = new IOSDriver("http://localhost:4723/wd/hub", dc);
        }

        public void testMyGoogleLoginOnMyApplication(){
          //I intend to do something here
          //Once i am finished, I close my application
          iosDriver.quit();
        }

        public void startSafari(){
            DesiredCapabilities dc = new DesiredCapabilities();
            dc.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone");
            dc.setCapability(MobileCapabilityType.UDID, "3838n838fn38jf8n838ffabcdefg");
            dc.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
            dc.setCapability(MobileCapabilityType.APP, "com.safari_package.name");

            iosDriver = new IOSDriver("http://localhost:4723/wd/hub", dc);
        }

        public void testSafari(){
          //I intend to go to google and do stuff
          //Once i am finished, I close my application
          iosDriver.quit();
        }

        public void finished(){
            service.stop();
        }

刚刚发现了一个适用于所有iOS版本和Xcode版本的解决方案:

驱动程序。后台应用程序(-1)
从跳板中,找到图标并单击它

刚刚发现了一个适用于所有iOS版本和Xcode版本的解决方案:

驱动程序。后台应用程序(-1)
从跳板中,找到图标并单击它

我试试这个。如何获取safari、gmail等应用程序的包名?下面是一个工具。我试试这个。如何获取safari、gmail等应用程序的包名?下面是一个工具。