Решено ZDP | Как проверять web страницу на загрузку?

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Всем привет!

Столкнулся с такой проблемой, что при работе с мобильными прокси страница может грузиться долго или вообще зависает, из-за чего идут ошибки выполнения дальнейшей работы (например нет WebView, пока страница не прогрузится)

GPT подсказывает так
Для проверки загрузки страницы в Chrome через ADB вы можете использовать команду, чтобы получить текущий URL в браузере. Если страница ещё загружается, URL может быть пустым или иметь специфическое значение, указывающее на процесс загрузки. В зависимости от этого, вы можете сделать вывод о состоянии загрузки страницы.

Ниже приведён пример использования ADB для получения URL текущей страницы в Chrome:
  1. Запустите Chrome и откройте страницу.
  2. Используйте следующую команду ADB, чтобы получить текущий URL: adb shell "dumpsys activity activities | grep mResumedActivity"

adb команда:
adb shell "dumpsys activity activities | grep mResumedActivity"

Но ZD выдает ошибку: "/system/bin/sh: dumpsys activity activities | grep mResumedActivity: not found"

Нужен способ, который бы проверял загрузилась страница или еще грузиться, но пока найти не могу найти способ.
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 300
Благодарностей
702
Баллы
113
C#:
                    int counter = 0;
                    var he = instance.DroidInstance.AppiumDriver.FindElementByClassName("android.widget.ProgressBar");
                    while (he != null)
                    {
                        if (counter >= 10)
                            break;
                        project.SendInfoToLog("Ждем загрузки страницы..");
                        Thread.Sleep(5000);
                        counter++;
                        he = instance.DroidInstance.AppiumDriver.FindElementByClassName("android.widget.ProgressBar");
                    }
 
  • Спасибо
Реакции: Dmitriy Ka

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
Нашел еще способ, JS лучший наш друг :D

var JS = instance.DroidInstance.WebView.EvaluateScript("return document.readyState");

Но через проверку ProgressBar будет стабильней!
 
Последнее редактирование:

robengo

Client
Регистрация
21.03.2023
Сообщения
138
Благодарностей
23
Баллы
18
C#:
                    int counter = 0;
                    var he = instance.DroidInstance.AppiumDriver.FindElementByClassName("android.widget.ProgressBar");
                    while (he != null)
                    {
                        if (counter >= 10)
                            break;
                        project.SendInfoToLog("Ждем загрузки страницы..");
                        Thread.Sleep(5000);
                        counter++;
                        he = instance.DroidInstance.AppiumDriver.FindElementByClassName("android.widget.ProgressBar");
                    }
Кстати бывает что сайт вовсе не работает, рекомендую ставить загрузку неболее 20-30 секунд, если не грузит то выводить кубик на ошибку
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 300
Благодарностей
702
Баллы
113
Кстати бывает что сайт вовсе не работает, рекомендую ставить загрузку неболее 20-30 секунд, если не грузит то выводить кубик на ошибку
тут она 50 секунд сделана
 

robengo

Client
Регистрация
21.03.2023
Сообщения
138
Благодарностей
23
Баллы
18
тут она 50 секунд сделана
Я про то что если сайт грузит более 30 секунд, это уже говорит о том что, либо что-то с интернетом, либо сайт не работает, поэтому и говорю лучше уходить на ошибку.
 
  • Спасибо
Реакции: Sherminator

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)