Дождаться загрузки страницы.

  • Автор темы Автор темы likeviewer
  • Дата начала Дата начала

likeviewer

Client
Регистрация
07.02.2020
Сообщения
48
Реакции
4
Баллы
8
Когда в табе инициируется переход по какому-то линку, то кубик понимает, что идет загрузка, показываются ее этапы, все отлично. Когда инициируется действие типа клик на кнопку, зено не всегда понимает (если вообще понимает), что после клика следует загрузка, которую тоже следует дождаться. Есть ли способ намекнуть ей об этом? Не хочется пихать множество кубиков с паузами, продлевая при этом время выполнения каждого инстанса. На форуме уже было предложено решение с помощью с#, но оно не срабатывает. Спасибо заранее!
 
  • Оценить
Реакции: Meteorburn
Если сайт использует ajax можно попробывать следующее:
Вставить в начале шаблона кубик настройки:
52678


52679
 
что за решение ? есть в снипетах код дождаться появления элемента.
Добрый день! Предлагалось вот такое решение. Не подощло:/

System.Threading.Thread.Sleep(500);
instance.ActiveTab.WaitDownloading();

Скорее всего проблема решена следующий автором.
 
Если сайт использует ajax можно попробывать следующее:
Вставить в начале шаблона кубик настройки:
Посмотреть вложение 52678

Посмотреть вложение 52679
Спасибо, скорее всего этот метод сработал в моей ситуации. На будущее не подскажете, как образом можно определять, на Ajax сайт или нет?
 
Спасибо, скорее всего этот метод сработал в моей ситуации. На будущее не подскажете, как образом можно определять, на Ajax сайт или нет?
Все современные сайты используют ajax.
Это по сути javascript обменивается данными с сервером и на лету изменяет содержимое страницы без перехода на другую страницу.
По сути настройка выше определяет, если идет обмен данными с сервером во время загруженной страницы, значит надо ожидать, иначе можно выполнять действия.
Второй вариант это устанавливать свои проверки с ожиданием определенного элемента по таймеру, если элемент не появился в течении времени, значит что-то пошло не так.
 
Каждому свое. я например всегда ставлю галочку игнорировать AJAX. Потому что сеть интернет это очень нестабильное место. И если ориентироваться только на статус загрузки, то можно не угадать. например связь не очень на текущем прокси, первый скрипт загрузил первую часть элементов и выставил готовность, зенка словила статус и пустила шаблон дальше, а нужный нам элемент нечаянно оказался во второй волне подгрузки, которая в силу тормознутости/нестабильности сети стартовала с некоторой задержкой. и на выходе получаем недогруженную страницу на момент поиска элемента, а через 1-2 секунды подгружается нужный элемент , но момент упущен.
этот вариант
System.Threading.Thread.Sleep(500);
instance.ActiveTab.WaitDownloading();
лучше вообще не использовать. потому как 500 миллисекунд явно мало для тормознутых прокси, а выставлять 6-12 секунд постоянной паузы это непозволительная роскошь.
WaitDownloading вообще может завесить шаблон на очень долго. опять же при плохой связи загрузка , а тем более AJAX может грузиться до бесконечности. можно ограничить настройкой таба, например 16 секунд, но опять же это превращается в рулетку. например нам нужен элемент который грузиться почти сразу на исходном html , но тормознутый/глючный прокси так затягивает конечную загрузку страницы + активизировался AJAX и получается что вроде страница загрузилась, а мы тупо ждем таймаут загрузки в 16 с. тоже непозволительная роскошь.
Самый лучший метод это по факту ждать появления нужного элемента в течении заданного интервала. если появился то сразу дальше, после таймаута направлять шаблон на отработку отсутствия элемента.
писал же в снипетах есть решения, вот почему никто не читает и не пользуется поиском ?
вот решение
еще одно, но там чуть доработать надо. ниже там написано как.
вот и вот и вот
все построены по одной логике.
можно использовать ожидание в стандартном кубике, но только при условии, что красный выход не будет занят. иначе сразу перестает работать, это такой баг в зенке, с очень длинной бородой кстати. поэтому лучше немного поразбираться, но сделать на C#
 
Потерялся в C#. Проблема с ожиданием загрузки страницы. Страница ещё не загрузилась а код в C# (ниже указанный отработал)
То есть всплывает форма регистрации, курсор мигает. Но после загрузки страницы курсор исчезает и теперь не вставляет мыло для реги. Как вставить код для ожидания полной загрузки страницы в C#
Мой код:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

string email = project.Variables["email"].Value;

// input text
tab.FindElementByXPath("//input[@id='join_neu_email_field']", 0).Click();
instance.SendText(email, 0);
Просмотрел все вышеуказанные варианты, но увы мат часть не учил.
Рега тут
 
Потерялся в C#. Проблема с ожиданием загрузки страницы. Страница ещё не загрузилась а код в C# (ниже указанный отработал)
То есть всплывает форма регистрации, курсор мигает. Но после загрузки страницы курсор исчезает и теперь не вставляет мыло для реги. Как вставить код для ожидания полной загрузки страницы в C#
Мой код:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

string email = project.Variables["email"].Value;

// input text
tab.FindElementByXPath("//input[@id='join_neu_email_field']", 0).Click();
instance.SendText(email, 0);
Просмотрел все вышеуказанные варианты, но увы мат часть не учил.
Рега тут

C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
tab.WaitDownloading();// Ожидаем прогрузку страницы

string email = project.Variables["email"].Value;

// input text
tab.FindElementByXPath("//input[@id='join_neu_email_field']", 0).Click();
instance.SendText(email, 0);
 
  • Оценить
Реакции: devas111
Очень оперативно. Вроде всё работает. Конечно прокся живая попалась. Потестим. Огромное СПСБ molotok.
 
Понаблюдал. Страница хитрая. И если проксик дохлятинка, то регистрация не проходит, или до конца не доходит.
Не дожидается в данном случае "tab.WaitDownloading();// Ожидаем прогрузку страницы" полной загрузки страницы
Т.е страница ещё с красным кружочком, а форма реги уже открылась. Сказал что страница хитрая - может загрузится до конца и пару раз заново прогрузиться.
Но уже, всё таки, есть успешные регистрации.
 
Самое простое и в большинстве случаев рабочее решение это поиск элемента в цикле на странице. Указываем: искать 100 раз с паузой 1сек кнопку отправить.
 
Когда в табе инициируется переход по какому-то линку, то кубик понимает, что идет загрузка, показываются ее этапы, все отлично. Когда инициируется действие типа клик на кнопку, зено не всегда понимает (если вообще понимает), что после клика следует загрузка, которую тоже следует дождаться. Есть ли способ намекнуть ей об этом? Не хочется пихать множество кубиков с паузами, продлевая при этом время выполнения каждого инстанса. На форуме уже было предложено решение с помощью с#, но оно не срабатывает. Спасибо заранее!
я просто ставлю фокус на нужном элементе стандартным кубиком и на вкладке 'дополнительно' ставлю сколько нужно ждать элемент
 
  • Оценить
Реакции: lautol

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