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

alan2000

Пользователь
Регистрация
27.10.2019
Сообщения
34
Реакции
0
Баллы
6
Выполняется алгоритм,в течении одного действия выполняется загрузка на сайте,а после него идет клик,проблема в том что пауза по длине разная всегда и клик совершается раньше чем надо из-за чего алгоритм крашится и выбивает ошибку.Инструмент "Пауза" не помогает ,потому что пауза всегда разная то 5 секунд то 25 ,ну жно обязательно ставить 30 для результата или можно что то придумать для экономии времени ?
 
Как вариант хвататься чекать элемент пока загрузиться и по загрузке проводить действия, а не рандомная пауза
 
Как вариант хвататься чекать элемент пока загрузиться и по загрузке проводить действия, а не рандомная пауза
Я думаю эту программу придумали для автоматизации,я не могу постоянно мониторить её
 
Дак тебе и не надо мониторить, сделай проверку элемент появился на страницы дальше действуешь, не появился ждёшь
 
Отдельный код - может надпись какая-то или ещё что-то появляется, как-то же вы определяете что элемент загрузился
 
Этот кружочек какой-то элемент и соответственно к нему надо попробовать привязаться
Ладно, понял про что ты,я думаю скорее всего нужен какой нибудь код ожидания загрузки страницы
 
Хах,я узнал что когда происходит элемент загрузки то можно нажимать на страницу точно также как и без нее,поэтому проверка кликом не прошла,из-за этого я даже не могу сделать проверку if
 
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
 
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
Как сделать ожидание элемента?Я поймал круг загрузки,какая функция отвечает за это?И где это писалось?
 
Последнее редактирование:
Уже много раз писалось на форуме, делайте ожидание элемента, если же перед элементом имеется другой (например, окно загрузки, popup), то проверяйте элементы по координатам, какой на переднем плане.
Я делал проверку по клику,но фион прозрачный и нажимает на кнопку через загрузку,проверка по высоте и ширине тоже не получилось,У меня выдавало неверный результат всегда,остается думаю какой нибудь код только
 
Я делал проверку по клику,но фион прозрачный и нажимает на кнопку через загрузку,проверка по высоте и ширине тоже не получилось,У меня выдавало неверный результат всегда,остается думаю какой нибудь код только
без куска кода или хотя бы минимального скриншота вам врятли нагадают
 
Как сделать ожидание элемента?Я поймал круг загрузки,какая функция отвечает за это?И где это писалось?
Считай появляется такой кружочек,все кнопки под ним кликабельные но не выполняют никакие действия (https://prnt.sc/qlr3u1)
 
Это ajax скорее всего на 1 взгляд, попробуейте его в конструктор взять, либо по коду смотрите меняется ли что-то
 
Выполняется алгоритм,в течении одного действия выполняется загрузка на сайте,а после него идет клик,проблема в том что пауза по длине разная всегда и клик совершается раньше чем надо из-за чего алгоритм крашится и выбивает ошибку.Инструмент "Пауза" не помогает ,потому что пауза всегда разная то 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 секунд будет ждать появления, а за тем, если не загрузилась кнопка, выходить по красной.
 
В таких случаях постоянно использую этот код (нашёл на просторах форума)
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) вставил значения,но код всегда выдает сделано ,но ни на кнопку не нажимает ни кружок не блокирует
 
Код не должен нажимать кнопку, он просто ждёт её появления в течении заданного времени. Если появилась, идёт по зелёной, а дальше размещай свой кубик с кликом.
Если не срабатывает с кнопкой, найди другой элемент, который появляется после полной загрузки страницы
 
  • Спасибо
Реакции: izubr и alan2000

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