Не понимаю почему только 1 элемент видит

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
Хочу вытащить картинки с сайта. Но Видит только 1 элемент. Когда я делаю выборку на сайте то все 8 элементов находит. Почему ?

string strXPath = "//img[@class='css-10f9kvm u-full-width u-full-height css-3p6im7']";

HtmlElementCollection colElements = instance.ActiveTab.FindElementsByXPath(strXPath);
project.SendInfoToLog("Всего элементов найдено: " + colElements.Count);
for (int i=0; i<colElements.Count;i++) {
HtmlElement elElement = colElements.GetByNumber(i);
project.Lists["etap_3_all_pic"].Add(elElement.GetAttribute("src"));
}


https://www.nike.com/fr/t/chaussure-air-max-97-essential-pour-mHCSvN
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Хочу вытащить картинки с сайта. Но Видит только 1 элемент. Когда я делаю выборку на сайте то все 8 элементов находит. Почему ?
Вполне возможно, что из-за малого размера инстанса, компоновка сайта (верстка) меняется.
Попробуйте в ПМ расширить инстанс, чтобы все картинки отображались как например в обычном браузере (на большом окне), в большом формате.

Еще причиной может быть изменяющиеся имена классов: css-10f9kvm u-full-width u-full-height css-3p6im7
По стилистике имен, видно, что скорее всего классы генерируются рандомно.
Правда, в этом случае изображения вообще не были бы найдены.
Так что, скорее всего - причина в изменяющейся верстке галереи изображений,
зависящей от размера инстанса в ПМ.
 
Последнее редактирование:

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
Вполне возможно, что из-за малого размера инстанса, компоновка сайта (верстка) меняется.
Попробуйте в ПМ расширить инстанс, чтобы все картинки отображались как например в обычном браузере (на большом окне), в большом формате.

Еще причиной может быть изменяющиеся имена классов: css-10f9kvm u-full-width u-full-height css-3p6im7
По стилистике имен, видно, что скорее всего классы генерируются рандомно.
Правда, в этом случае изображения вообще не были бы найдены.
Так что, скорее всего - причина в изменяющейся верстке галереи изображений,
зависящей от размера инстанса в ПМ.
Во вкладке "запись и отладка" в полный размер показывается сайт
 

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
классы не меняются
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Во вкладке "запись и отладка" в полный размер показывается сайт
Попробуйте перед парсингом проскроллирвоать старницу вниз, чтобы все картинки прогрузились, там аяксом они подгружаются.

upload_2019-1-18_17-50-7.png
 

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
ставлю сразу после кубика "Перейти на страницу" "Эмуляцию клавиатуры" {END}. Всё ровно 1 элемент :(
Возможно страница не успевает подгрузиться полностью после скролла.
Скролл происходит?

Страница не так случайно выглядит?

upload_2019-1-18_18-20-36.png

Нужно, чтобы так:

upload_2019-1-18_18-22-27.png
 

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
У меня такая же картинка.
Возможно страница не успевает подгрузиться полностью после скролла.
Скролл происходит?

Страница не так случайно выглядит?

Посмотреть вложение 35359

Нужно, чтобы так:

Посмотреть вложение 35360
У меня как и на второй картинке. Только когда я поднимаюсь наверх мышкой потом вижу что картинки грузятся еще как будто бы. Индикатор загрузки в виде 3 точек прыгающих
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
У меня такая же картинка.

У меня как и на второй картинке. Только когда я поднимаюсь наверх мышкой потом вижу что картинки грузятся еще как будто бы. Индикатор загрузки в виде 3 точек прыгающих
Можно ввести цикл ожидания на прогрузку картинок или на исчезновение этих прыгающих точек,
проверять в цикле их размер (высоту или ширину) и как только она будет равна 0, производить выход из цикла ожидания и производить парсинг.
 

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
Можно ввести цикл ожидания на прогрузку картинок или на исчезновение этих прыгающих точек,
проверять в цикле их размер (высоту или ширину) и как только она будет равна 0, производить выход из цикла ожидания и производить парсинг.
Там пока я не поднимусь не будет загрузки. бред какой то А как такое сдать? цикл ожидания на прогрузку картинок или на исчезновение этих прыгающих точек,
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Потому что GetByNumber сбивает твой энумератор. Используй foreach
 
  • Спасибо
Реакции: Yuriy Zymlex

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
Потому что GetByNumber сбивает твой энумератор. Используй foreach
Код:
Tab tab = instance.MainTab;
var ab = tab.MainDocument.FindElementsByXPath("//img[@class='css-10f9kvm u-full-width u-full-height css-3p6im7']");
foreach (var el in ab.Elements)
{
    string src = el.GetAttribute("src");
    if(!string.IsNullOrEmpty(src))
    {
        project.Lists["etap_3_all_pic"].Add(src);
    }
}
Все равно берет 1 элемент
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Все равно берет 1 элемент
Так там всего одна картинка отображается, надо окно развернуть в ширину.
+ сама картинка может не прогрузиться, стоит сначала их ячейки находить.
 

evgeniy12345

Новичок
Регистрация
13.01.2019
Сообщения
22
Благодарностей
1
Баллы
3
Так там всего одна картинка отображается, надо окно развернуть в ширину.
+ сама картинка может не прогрузиться, стоит сначала их ячейки находить.
Взял соседний элеиент. Экран всегда в полную открыт был но тоьлк так можно было сделатт
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
всё там работает

2019-01-20_122715.png
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
там хитрость есть, надо окно браузера больше влево расширять

а вообще сильно не рапсширяй, там хитрость в другом, на 1-5 % влево от середины экрана делай чтобы картики меньше были и быстрей подгружались
 
Последнее редактирование:

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