Handle closing of ad bottom sheets in CommonScript:
- Add detection and dismissal logic for ad banners on the homepage. - Introduce retry mechanism with back button fallback for persistent ads.
This commit is contained in:
parent
f7a187ec88
commit
d37acd5347
@ -210,6 +210,21 @@ bool CommonScript::tryToCloseAllBannersOnHomePage(const QString &deviceId, const
|
||||
AdbUtils::makeTap(deviceId, gpNode.x(), gpNode.y());
|
||||
QThread::msleep(1500);
|
||||
closedThis = true;
|
||||
} else if (Node adNode = xmlScreenParser.tryToFindAdBanner(); !adNode.isEmpty()) {
|
||||
// Рекламный bottom sheet (ипотека, бесплатная карта, "Копите звёзды" и т.п.)
|
||||
qDebug() << "[tryToCloseAllBannersOnHomePage] Ad bottom sheet detected, closing...";
|
||||
AdbUtils::makeTap(deviceId, adNode.x(), adNode.y());
|
||||
QThread::msleep(1000);
|
||||
// Если touch_outside не помог — жмём назад
|
||||
xmlScreenParser.parseAndSaveXml(AdbUtils::getScreenDumpAsXml(deviceId, ++m_counter));
|
||||
if (Node stillAd = xmlScreenParser.tryToFindAdBanner(); !stillAd.isEmpty()) {
|
||||
qDebug() << "[tryToCloseAllBannersOnHomePage] Ad still visible, pressing back...";
|
||||
AdbUtils::goBack(deviceId);
|
||||
QThread::msleep(1000);
|
||||
}
|
||||
closedAny = true;
|
||||
xmlScreenParser.parseAndSaveXml(AdbUtils::getScreenDumpAsXml(deviceId, ++m_counter));
|
||||
continue;
|
||||
} else if (Node closeBannerOrDialogNode = xmlScreenParser.tryToFindBannerOrDialog(width, height);
|
||||
closeBannerOrDialogNode.x() != -1 && closeBannerOrDialogNode.y() != -1) {
|
||||
AdbUtils::makeTap(deviceId, closeBannerOrDialogNode.x(), closeBannerOrDialogNode.y());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user