Я написал код Java с операторами if-else, и пользователь перешел бы с 'Screen1' на 'Screen2' по любому из 4 альтернативных маршрутов, и я приложил изображение для всех возможныхпотоки приложений, которые решаются на ходу, конечно, код, написанный разработчиком.Просто для добавления инструмента используется Appium.
driver.findElement(By.id("----")).click(); //this click will take from 'screen1' to next screen.
if(driver.findElement(By.id("com.abc.rbanking:id/WhatsNew")).isDisplayed())
{ //case if screen A is displayed just after screen 1
MobileElement cross = driver.findElement(By.xpath("//*[@class = 'android.widget.ImageView']"));
cross.click();
Thread.sleep(3000);
}
if(driver.findElement(By.xpath("//android.widget.TextView[@resource-id='com.abc.rbanking:id/text_logo'][text()='Security Question']")).isDisplayed())
{ //case when screen B is displayed Just after screen 1
MobileElement mfaQ = driver.findElement(By.id("com.abc.rbanking:id/MfaQuestionText"));
String question = mfaQ.getText();
String lastword = question.replaceAll("^.*?(\\w+)\\W*$", "$1");
System.out.println(lastword);
MobileElement answer = driver.findElement(By.id("com.abc.rbanking:id/MfaAnswerTextBox"));
answer.sendKeys(lastword);
MobileElement checkbox = driver.findElement(By.id("com.abc.rbanking:id/ShowChallengeAnswerCheckbox"));
checkbox.click();
Thread.sleep(3000);
MobileElement nextb = driver.findElement(By.id("com.abc.rbanking:id/PrimaryButton"));
nextb.click();
Thread.sleep(8000);
}
if(driver.findElement(By.id("com.abc.rbanking:id/WhatsNew")).isDisplayed())
{ //case when screen A is displayed after screen B
MobileElement cross = driver.findElement(By.xpath("//*[@class = 'android.widget.ImageView']"));
cross.click();
Thread.sleep(3000);
}
driver.findElement(By.id("----")); //this is code for 'Screen 2'
Что происходит во время выполнения скрипта, сначала проверяется «If», а остальной код пропускается.Я не могу понять проблему.Пожалуйста, помогите.