Потеря коллекции в цикле for

Fess

Client
Регистрация
12.09.2013
Сообщения
32
Благодарностей
17
Баллы
8
Здравствуйте! Происходит потеря коллекции в цикле for, после перехода на начальную страницу.

test.png

Не очень понял, почему так происходит.
Версия программы 5.9.8.0.
 

Вложения

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Не вижу на скриншоте ошибки
 

Fess

Client
Регистрация
12.09.2013
Сообщения
32
Благодарностей
17
Баллы
8
Ошибка в том, что вывелся только первый элемент "Карты", остальные пустые строки.

Когда я закомментировал все в цикле и оставил только вывод, то вывелось все правильно.

test2.png
Но в цикле только клик по элементу из коллекции и навигейт на первую страницу, почему теряются элементы коллекции?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Коллекцию нужно пересобирать после смены страницы
Код:
instance.ClearCookie();
instance.ClearCache();

Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;
if (tab.IsBusy) tab.WaitDownloading();
tab.Navigate("http://yandex.ru/", "");
if (tab.IsBusy) tab.WaitDownloading();

//Получение ссылок
var allUrl = tab.FindElementsByAttribute("a", "class", "link link_blue_yes home-tabs__link home-tabs__search", "text");
project.SendInfoToLog("Количество ссылок = "+allUrl.Count);

//Получение url
string startUrl = tab.URL;

for(int i = 0; i < allUrl.Count; i++){
    //Вывод в лог элемент
    project.SendInfoToLog(allUrl.GetByNumber(i).GetAttribute("innerhtml"));
   
    //Клик
    allUrl.GetByNumber(i).RiseEvent("onclick", "Full");
    if (tab.IsBusy) tab.WaitDownloading();
   
    //Переход на главную
    tab.Navigate(startUrl, "");
    if (tab.IsBusy) tab.WaitDownloading();
   
    allUrl = tab.FindElementsByAttribute("a", "class", "link link_blue_yes home-tabs__link home-tabs__search", "text");
}
return "ok";
 

Fess

Client
Регистрация
12.09.2013
Сообщения
32
Благодарностей
17
Баллы
8
Да, но если я собрал коллекцию со страницы 1 (какие-нибудь данные), перехожу по массиву ссылок в цикле (страница 2, страница 3, ...), проверяя совпадение из коллекции страницы 1 на страницах 2,3, ..., то данные теряются, в итоге, нужно грузить в цикле страницу 1, чтобы постоянно собирать коллекцию.
Вроде бы коллекция тоже массив, но ведет себя как-то нелогично.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Если страницу обновили, то работать с коллекцией элементов прошлой уже не сможете.
 
  • Спасибо
Реакции: Fess

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