"Не удается привести группу методов "Count" к неделегируемому типу "int"...

And

Новичок
Регистрация
22.03.2018
Сообщения
12
Благодарностей
0
Баллы
1
Подскажите, пожалуйста, почему PM выдает ошибку в этом коде?


Код:
var currentCount = 0;
var lastCount = 0;

while(currentCount<Convert.ToInt32(project.Variables["IS_posts_min"].Value))
{
    var postsCollection = instance.ActiveTab.FindElementByAttribute("div","onclick","wall.postClick","regexp",0);
    try {instance.ActiveTab.FindElementByAttribute("a","id","wall_more_link","regexp",0).Click();}
    catch{}
   
    currentCount = postsCollection.Count;
    if (currentCount==lastCount)
    {
        break;
    }
    lastCount = postsCollection.Count;
    System.Threading.Thread.Sleep(2000);
}
Компиляция кода Ошибка в действии "CS0428" "Не удается привести группу методов "Count" к неделегируемому типу "int". Вызов метода использовался намеренно?". [Строка: 9; Cтолбец: 17]

Компиляция кода Ошибка в действии "CS0428" "Не удается привести группу методов "Count" к неделегируемому типу "int". Вызов метода использовался намеренно?". [Строка: 14; Cтолбец: 14]
 

ssXXXss

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

And

Новичок
Регистрация
22.03.2018
Сообщения
12
Благодарностей
0
Баллы
1
ну наверно потому что непонятное в этих строках, что ты там хотишь в этих строках получить ?
Это фрагмент из видео rostonix по парсингу постов из групп в ВК. Этот код должен определять, загрузилось ли достаточное количество постов или нужно скроллить еще. Необходимое количество постов указывается в переменной "IS_posts_min". На видео все работает, а у меня возникают непонятные ошибки. В частности та, что описана выше.

Да, в C# я нуб.


Код:
var currentCount = 0; // текущее количество постов на странице
var lastCount = 0; // последнее количество постов после скролла

// пока текущее количество постов < чем переменная IS_posts_min
while(currentCount<Convert.ToInt32(project.Variables["IS_posts_min"].Value))
{
    // собираем коллекцию всех постов
    var postsCollection = instance.ActiveTab.FindElementByAttribute("div","onclick","wall.postClick","regexp",0);
    // пробуем кликнуть на дозагрузку элементов, если они еще есть
    try {instance.ActiveTab.FindElementByAttribute("a","id","wall_more_link","regexp",0).Click();}
    catch{}
    // присваиваем счетчику currentCount текущее значение количества элементов в коллекции
    currentCount = postsCollection.Count;
    // проверяем изменилось ли количество элементов с момента последнего выполнения цикла
    if (currentCount==lastCount)
    {
        break;
    }
    // передаем переменной lastCount текущее значение количества элементов, чтобы во время следующего цикла сравнение происходило именно с этим числом
    lastCount = postsCollection.Count;
    System.Threading.Thread.Sleep(2000); // пауза
}
[Строка: 12; Cтолбец: 17], [Строка: 19; Cтолбец: 14]
 

ssXXXss

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

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Ошибка из за того что метод FindElementByAttribute возвращает HtmlElement, т.е. это не коллекция, и у него нет свойства Count.

upload_2018-3-23_13-54-52.png


upload_2018-3-23_13-55-19.png


А вот FindElementsByAttribute возвращает HtmlElementCollection

upload_2018-3-23_13-56-36.png

upload_2018-3-23_13-57-44.png


Это фрагмент из видео rostonix по парсингу постов из групп в ВК
Видео устарели, ничто не вечно.))
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Тож по первой с этой s помучался, ведь не сразу можно было заметить её отсутствие.
var лучше не использовать, был бы там явно прописан тип, то была бы ошибка преобразования с указанием проблемной 8 строки.
 
  • Спасибо
Реакции: Mikhail B. и And

And

Новичок
Регистрация
22.03.2018
Сообщения
12
Благодарностей
0
Баллы
1
Ошибка из за того что метод FindElementByAttribute возвращает HtmlElement, т.е. это не коллекция, и у него нет свойства Count.

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

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

А вот FindElementsByAttribute возвращает HtmlElementCollection

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


Видео устарели, ничто не вечно.))
Долго переваривал, но все понял. Большое спасибо! :bp:
 

And

Новичок
Регистрация
22.03.2018
Сообщения
12
Благодарностей
0
Баллы
1
Тож по первой с этой s помучался, ведь не сразу можно было заметить её отсутствие.

var лучше не использовать, был бы там явно прописан тип, то была бы ошибка преобразования с указанием проблемной 8 строки.
Спасибо!!!
 

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