Improve button loading and error handling in PayByCardScript:
- Add checks for the "По номеру карты" button on the payments screen. - Refine error messages to distinguish missing button vs. incomplete screen load.
This commit is contained in:
parent
0a460d10a0
commit
8c2be04787
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user