неизвестная пауза

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Выполняется алгоритм,в течении одного действия выполняется загрузка на сайте,а после него идет клик,проблема в том что пауза по длине разная всегда и клик совершается раньше чем надо из-за чего алгоритм крашится и выбивает ошибку.Инструмент "Пауза" не помогает ,потому что пауза всегда разная то 5 секунд то 25 ,ну жно обязательно ставить 30 для результата или можно что то придумать для экономии времени ?
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Как вариант хвататься чекать элемент пока загрузиться и по загрузке проводить действия, а не рандомная пауза
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Как вариант хвататься чекать элемент пока загрузиться и по загрузке проводить действия, а не рандомная пауза
Я думаю эту программу придумали для автоматизации,я не могу постоянно мониторить её
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Дак тебе и не надо мониторить, сделай проверку элемент появился на страницы дальше действуешь, не появился ждёшь
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Отдельный код - может надпись какая-то или ещё что-то появляется, как-то же вы определяете что элемент загрузился
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Этот кружочек какой-то элемент и соответственно к нему надо попробовать привязаться
Ладно, понял про что ты,я думаю скорее всего нужен какой нибудь код ожидания загрузки страницы
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Хах,я узнал что когда происходит элемент загрузки то можно нажимать на страницу точно также как и без нее,поэтому проверка кликом не прошла,из-за этого я даже не могу сделать проверку if
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
Как сделать ожидание элемента?Я поймал круг загрузки,какая функция отвечает за это?И где это писалось?
 
Последнее редактирование:

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
Я делал проверку по клику,но фион прозрачный и нажимает на кнопку через загрузку,проверка по высоте и ширине тоже не получилось,У меня выдавало неверный результат всегда,остается думаю какой нибудь код только
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Я делал проверку по клику,но фион прозрачный и нажимает на кнопку через загрузку,проверка по высоте и ширине тоже не получилось,У меня выдавало неверный результат всегда,остается думаю какой нибудь код только
без куска кода или хотя бы минимального скриншота вам врятли нагадают
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
Как сделать ожидание элемента?Я поймал круг загрузки,какая функция отвечает за это?И где это писалось?
Считай появляется такой кружочек,все кнопки под ним кликабельные но не выполняют никакие действия (https://prnt.sc/qlr3u1)
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Это ajax скорее всего на 1 взгляд, попробуейте его в конструктор взять, либо по коду смотрите меняется ли что-то
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Выполняется алгоритм,в течении одного действия выполняется загрузка на сайте,а после него идет клик,проблема в том что пауза по длине разная всегда и клик совершается раньше чем надо из-за чего алгоритм крашится и выбивает ошибку.Инструмент "Пауза" не помогает ,потому что пауза всегда разная то 5 секунд то 25 ,ну жно обязательно ставить 30 для результата или можно что то придумать для экономии времени ?
В таких случаях постоянно использую этот код (нашёл на просторах форума)
C#:
HtmlElement he;
int i = 0;
int timeout = 10;
// Ожидание появления
do
{
         //he = instance.ActiveTab.FindElementByXPath("тут xpath", 0); // удобней
         he = instance.ActiveTab.FindElementByAttribute("tags", "attrName", "attrValue", "searchKind", 0); // по старинке, как в кубике
         Thread.Sleep(1000);
        i++;
} while (he.IsVoid && i < timeout);
if (he.IsVoid) throw new Exception("Не найдено");
// дальше с he (элементом) делается, что угодно
Этот код вставьте в кубик C#, привяжите его к кнопке, которую нужно нажать или к какому то другому элементу, появляющемуся после полной загрузки страницы. Самый простой вариант, - нажмите на вашем кубике отвечающем за клик правой кнопкой мыши, выберите "конвертировать в C#", код кубика скопируется в буфер обмена, вставьте его в блокнот. Из этого кода скопируйте часть похожую на эту:
("tags", "attrName", "attrValue", "searchKind", 0) и замените её в коде выше.
int timeout = 10; эта часть в коде отвечает за время ожидания появления кнопки, измените на 30 и кубик в течении 30 секунд будет ждать появления, а за тем, если не загрузилась кнопка, выходить по красной.
 

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Благодарностей
0
Баллы
6
В таких случаях постоянно использую этот код (нашёл на просторах форума)
C#:
HtmlElement he;
int i = 0;
int timeout = 10;
// Ожидание появления
do
{
         //he = instance.ActiveTab.FindElementByXPath("тут xpath", 0); // удобней
         he = instance.ActiveTab.FindElementByAttribute("tags", "attrName", "attrValue", "searchKind", 0); // по старинке, как в кубике
         Thread.Sleep(1000);
        i++;
} while (he.IsVoid && i < timeout);
if (he.IsVoid) throw new Exception("Не найдено");
// дальше с he (элементом) делается, что угодно
Этот код вставьте в кубик C#, привяжите его к кнопке, которую нужно нажать или к какому то другому элементу, появляющемуся после полной загрузки страницы. Самый простой вариант, - нажмите на вашем кубике отвечающем за клик правой кнопкой мыши, выберите "конвертировать в C#", код кубика скопируется в буфер обмена, вставьте его в блокнот. Из этого кода скопируйте часть похожую на эту:
("tags", "attrName", "attrValue", "searchKind", 0) и замените её в коде выше.
int timeout = 10; эта часть в коде отвечает за время ожидания появления кнопки, измените на 30 и кубик в течении 30 секунд будет ждать появления, а за тем, если не загрузилась кнопка, выходить по красной.
Сверху мой код снизу твой (https://prnt.sc/qm0odl) вставил значения,но код всегда выдает сделано ,но ни на кнопку не нажимает ни кружок не блокирует
 

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Код не должен нажимать кнопку, он просто ждёт её появления в течении заданного времени. Если появилась, идёт по зелёной, а дальше размещай свой кубик с кликом.
Если не срабатывает с кнопкой, найди другой элемент, который появляется после полной загрузки страницы
 
  • Спасибо
Реакции: izubr и alan2000

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