Таймаут поиска элемента на странице

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

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Реакции
53
Баллы
28
Собственно, есть сайт, работающий полностью на ajax. Т.е. нажал кнопку отправки формы - страница не перезагружается, а асинхронно грузится контент и вставляется, куда ему положено.

В Зеннопостере мы кликаем на кнопочку и сразу же идет переход к следующему действию(т.е. браузер не занят, значит, станица загрузилсь). А страница-то на самом деле еще не загрузилась, запрос все еще идет. И следующий экшн(например, ввод данных в поле) не выполняется, т.к. и поля никакого еще нет. Где в настройках можно отрегулировать время ожидания появления элемента на странице?
 
Спасибо, это оно.
 
Нет, все же это не оно. Если снять галочку "игнорировать аякс", скрипт будет ожидать загрузки страницы даже при загрузке рекламы и т.д., это очень тормозит процесс. Сейчас я написал таую функцию-замыкание на C#:
Код:
Развернуть Свернуть Копировать
int MaxTry = 10;
int Pause = 1000;
project.Context["GetElementByXPath"] = (Func<string, HtmlElement>)((XPath) => {
   HtmlElement El;
   for(int i = 0; i < MaxTry; i++) {
     El = instance.ActiveTab.FindElementByXPath(XPath, 0);
     if(!El.IsNull) return El;
     else Thread.Sleep(Pause);
   }
   throw new Exception("Элемент " + XPath + " не найден!");
});
Она ждем максимум 10 сек(10 по 1), а потом кидает исключение, если элемент за 10 сек не появился. Все-таки стоит внести такой же функционал в стандартный набор.
 
я уже наверно неделю думаю над такой ситуацией
делаю шаб с эмулятором мыши для гугла.
есть список List<HtmlElemnt>. Список елементов отфильтровывается, что-то удаляется, что-то остается.
я передаю каждый элемент из списка в контекст делегату, подобно посту выше и там уже идет работа.
В однопоточном режиме все прекрасно, но в многопотоке некоторые елементы почемуто теряют свои свойства: положение, размеры...
Пробовал передавать элемент не в параметрах делегата, а через контест - та же фигня.
Пробовал передавать в делегат не сам элемент а значения для FindElementByAttribute. Стало по-лучше но все равно 5% теряют свои свойства. Приходится перед каждым важным моментом опять искать этот элемент, а это не прикольно.
Хуже всего что я не могу унивирсализировать данный метод, потому что для каждого элемента требуются свои методы поиска.
Я понимаю, что это какой-то баг и наверно прийдется делать тестовый шаб для демонстрации.
Было бы вобще круто если бы каждый елемент имел бы у себя хотябы xpath, а лучше ссылку на метод поиска. Но только чтоб они тоже не терялись.
 
Последнее редактирование:

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