Сценарий:
Я запускаю приложение на реальном устройстве
Делать логин
Посадка на домашний экран
Элементы домашнего экрана не распознаются приложением в устройстве ANDROID. Я попытался нажать на значок справки в правом верхнем углу.
Примечание , что выполнение действий над любым элементом Начального экрана прерывисто
Что я пробовал:
- Ввод ожидания после того, как я войду.
- возвращение объекта домашней страницы после того, как я войду
- больше ждать, прежде чем я использую initElements для инициализации объектов домашней страницы
- внутри конструктора домашней страницы я попытался findElementsById, findElementById, я попытался поставить динамическое ожидание элемента перед вызовом initElements
- перепробовал идентификаторы для всех элементов
- попробовал xpath для всех элементов
- попытался убить приложение и перезапустить приложение и снова попытался определить элементы
- попробовал JavascriptExecutor
- Пробовал метод нажатия
// Ниже представлен конструктор экрана объекта домашней страницы, который вызывается после входа в систему.
public HomePageObjectsNew(Config testConfig) {
this.testConfig = testConfig;
PlatformName = testConfig.getRunTimeProperty("platformNameMobile");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<MobileElement> abc= MobileActions.findElementsById(testConfig, "frag_home_help_imgview_id");
testConfig.logComment(Integer.toString(abc.size()));
PageFactory.initElements(new AppiumFieldDecorator(testConfig.driver, 5, TimeUnit.SECONDS), this);
}
//*Login Method:*
public HomePageObjectsNew loginFlowUsingPassword() {
swipeWalkthroughScreens();
enterAlreadyExistingEmailID("coios6@yopmail.com");
Browser.wait(testConfig, 2);
MobileActions.waitForVisibility(testConfig, txtFldPassword,
"Password field");
enterPassword();
clickOnLogin();
Browser.wait(testConfig, 4);
return new HomePageObjectsNew(testConfig);
}
//*My test case:*
@Test(description = "Verify successful Login of an existing now merchant using password flow", dataProvider = "GetMobileTestConfig", timeOut = 700000)
public void verifyPaymentRequestButtonIsClickableAfterLogin(Config testConfig) {
try {
LoginSignUpPageObjects loginSignUpPageObjects = new LoginSignUpPageObjects(testConfig);
HomePageObjectsNew obj = loginSignUpPageObjects.loginFlowUsingPassword();
obj.btnHelpScreenHeader.click();
MobileActions.goBack(testConfig);
obj.clickOnHamburgerMenu();
Browser.wait(testConfig, 2);
obj.clickOnHamburgerMenu();
loginSignUpPageObjects.clickOnRequestPayment();
System.out.println("Request Button clicked");
} catch (Exception e) {
testConfig.logFail("verifyPaymentRequestButtonIsClickableAfterLogin failed !!");
e.printStackTrace(System.out);
}
}
**Actual:** Not able to click on Home screen elements
So if i try 10 times only 1 time it works ... NOTE that id's are not dynamic have already confirmed with DEV !!
**Expected:** I should be able to click on home page elements
Журналы Appium:
[MJSONWP (6fbddb32)] Вызов AppiumDriver.findElements () с аргументами: ["id", "com.payu.payunow: id / frag_home_help_imgview_id", "6fbddb32-3ee5-4237-beee-c0496d88e69e"]
[BaseDriver] Допустимые стратегии локатора для этого запроса: xpath, id, имя класса, идентификатор доступности, -android uiautomator
[BaseDriver] Ожидание до 5000 мс для условия
[AndroidBootstrap] Отправка команды на android: {"cmd": "action", "action": "find", "params": {"стратегии": "id", "селектор": "com.payu.payunow: id / frag_home_help_imgview_id», "контекст": "", "несколько": истинно}}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получены данные от клиента: {"cmd": "action", "action": "find", "params": {"стратегии": "id", "селектор": " com.payu.payunow: идентификатор / frag_home_help_imgview_id», "контекст": "", "несколько": истинно}}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получил команду типа ACTION
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получено действие команды: найти
[AndroidBootstrap] [BOOTSTRAP LOG] [отладка] Поиск 'com.payu.payunow: id / frag_home_help_imgview_id' с использованием 'ID' с contextId: '' multiple: true
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Использование: UiSelector [RESOURCE_ID = com.payu.payunow: id / frag_home_help_imgview_id]
[AndroidBootstrap] [Журнал BOOTSTRAP] [отладка] Селектор getElements: UiSelector [RESOURCE_ID = com.payu.payunow: id / frag_home_help_imgview_id]
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Элемент [] имеет значение null: (0)
[AndroidBootstrap] [BOOTSTRAP LOG] [отладка] getElements tmp селектор: UiSelector [INSTANCE = 0, RESOURCE_ID = com.payu.payunow: id / frag_home_help_imgview_id]
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Не удалось найти элемент. Очистка кеша доступности и повторная попытка.
[AndroidBootstrap] [BOOTSTRAP LOG] [отладка] Поиск 'com.payu.payunow: id / frag_home_help_imgview_id' с использованием 'ID' с contextId: '' multiple: true