Переключение между родным приложением iOS и сафари и запуск приложения точно с той же страницы, где я его оставил и перешел на сафари
Сценарий 1: по моему ios
1-й этап - регистрация, которая немного длинная. Мне нужно заполнить 15 страниц, чтобы завершить процесс регистрации. На 5-й странице приведен код подтверждения, код уже отправлен на идентификатор электронной почты. так что из этой кодовой страницы проверки я хочу сделать ->
Сценарий 1:
Переключиться на сафари
выполнить задание в сафари
Хотите вернуться в приложение на странице подтверждения кода.
Я могу успешно сделать шаг 1 и 2. Проблема в шаге 3, когда я открыл свое приложение с driver.launchApp()
команда, приложение запускается с самого начала, но я хочу запустить его со страницы "код подтверждения".
Потому что, если начать его с первой страницы, то будет сгенерирован другой код.
Сценарий 2:
Предположим, что во время запуска скрипта я получил ошибку на 4-й странице моего процесса регистрации. После исправления проблемы я хочу запустить его с 4-й страницы. Я имею в виду, что хочу начать именно с того же места, куда я ушел в прошлый раз. Как я могу сделать это в appium
???
Appium:
Версия для ПК: 1.10.0Xcode:
версия: 10.1Simulator
: iphone-6s (12.1)
Ниже я приложил свой код, пожалуйста, посмотрите,
public class Base {
private String reportDirectory = “reports”;
private String reportFormat = “xml”;
private String testName = “TestIOS”;
public static int counter= 0;
public AppiumDriver driver;
public static SeeTestClient client;
public DesiredCapabilities dc = new DesiredCapabilities();
static UUID uuid = UUID.randomUUID();
static long l = ByteBuffer.wrap(uuid.toString().getBytes()).getLong();
static String id = Long.toString(l, Character.MAX_RADIX);
static String storedId= id;
@BeforeTest
public void setUp() throws MalformedURLException {
dc.setCapability("reportDirectory", reportDirectory);
dc.setCapability("reportFormat", reportFormat);
dc.setCapability("testName", testName);
dc.setCapability("automationName", "XCUITest");
dc.setCapability("platformName", "iOS");
dc.setCapability("deviceName", "iPhone 6s");
dc.setCapability("platformVersion", "12.1");
dc.setCapability("app", "/Users/bs215/IdeaProjects/meedapptest/Apps/MEED/meed.app");
dc.setCapability(IOSMobileCapabilityType.BUNDLE_ID, "net.....");
dc.setCapability("autoAcceptAlerts", true);
dc.setCapability("fullReset", false);
dc.setCapability("noReset", true);
dc.setCapability("clearSystemFiles", true);
dc.setCapability("autoWebview", true);
driver = new IOSDriver<>(new URL("http://localhost:4723/wd/hub"), dc);
client = new SeeTestClient(driver);
driver.setLogLevel(Level.INFO);
}
@Test(priority = 11)
public void GMA_TC_10_verifyEmailVerificationCode () throws Exception{
signupPage signUp= new signupPage();
String code= other.varificationCode.emailid(driver);
driver.launchApp();
}
}
package other;
public class varificationCode extends Base {
public static AppiumDriver driver2;
public static String emailId(AppiumDriver driver) throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "12.1");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 6s");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");
capabilities.setCapability("autoWebview", true);
capabilities.setCapability("useNewWDA", true);
driver2 = new IOSDriver<>(new URL("http://localhost:4723/wd/hub"), capabilities);
driver2.get(“http://www.yopmail.com”);
driver2.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
String requiredcode;
=======doing the task and get the code from mail========
return requiredcode;
}
}