diff --git a/android/ozon/PayByCardScript.cpp b/android/ozon/PayByCardScript.cpp index 466bded..6b52426 100644 --- a/android/ozon/PayByCardScript.cpp +++ b/android/ozon/PayByCardScript.cpp @@ -169,34 +169,33 @@ void PayByCardScript::makePayment( AdbUtils::makeTap(deviceId, transferBtn.x(), transferBtn.y()); QThread::msleep(2000); - // 2. Ждём экран "Платежи и переводы" + // 2. Ждём экран "Платежи и переводы" И прогрузки кнопки "По номеру карты" + Node cardBtn; bool paymentsPageLoaded = false; + bool titleSeen = false; for (int attempt = 0; attempt < 10; ++attempt) { if (!checkApp()) return; xmlScreenParser.parseAndSaveXml(AdbUtils::getScreenDumpAsXml(deviceId, ++m_counter)); Node title = xmlScreenParser.findTextNode("Платежи и переводы"); - if (!title.isEmpty()) { + if (!title.isEmpty()) titleSeen = true; + cardBtn = xmlScreenParser.findButtonNode("По номеру карты", false); + if (!title.isEmpty() && !cardBtn.isEmpty()) { paymentsPageLoaded = true; break; } - qDebug() << "[PayByCard] Waiting for 'Платежи и переводы', attempt" << attempt + 1 << "/ 10"; + qDebug() << "[PayByCard] Waiting for 'Платежи и переводы' + 'По номеру карты', attempt" << attempt + 1 << "/ 10"; QThread::msleep(1500); } if (!paymentsPageLoaded) { - m_error = "Экран 'Платежи и переводы' не загрузился"; + m_error = titleSeen + ? "Кнопка 'По номеру карты' не найдена на экране платежей" + : "Экран 'Платежи и переводы' не загрузился"; qWarning() << "[PayByCard]" << m_error; return; } // 3. Нажимаем "По номеру карты" в секции "ДРУГИЕ СПОСОБЫ" - Node cardBtn = xmlScreenParser.findButtonNode("По номеру карты", false); - if (cardBtn.isEmpty()) { - m_error = "Кнопка 'По номеру карты' не найдена на экране платежей"; - qWarning() << "[PayByCard]" << m_error; - return; - } - qDebug() << "[PayByCard] Tapping 'По номеру карты'..."; AdbUtils::makeTap(deviceId, cardBtn.x(), cardBtn.y()); QThread::msleep(2000);