Парсинг / Object reference not set to an instance of an object.

  • Автор темы Автор темы Salvation
  • Дата начала Дата начала
  • Теги Теги
    xpath

Salvation

Новичок
Регистрация
23.02.2019
Сообщения
10
Реакции
2
Баллы
3
Привет. Не могу понять в чем ошибка . Код из статьи из статьи https://zennolab.com/discussion/thr...instrukcija-dlja-novichkov-ot-novichka.59596/

C#:
Развернуть Свернуть Копировать
HtmlElementCollection luboe_imy = null; //все HtmlElementCollection лучше объявлять в самом верху

//начало: подключение таблицы
var package = new ExcelPackage(new FileInfo(@"E:\123.xlsx")); //путь к табличке
ExcelWorksheet tabletest = package.Workbook.Worksheets[1]; //где tabletest - имя(любое) – лучше вообще никогда не менять, а 1 - номер листа в excel
//конец: подключение таблицы

Tab tab = instance.ActiveTab;
HtmlElementCollection itemsCollection = tab.FindElementsByXPath("//tr[@id]");
project.SendInfoToLog("Количество элементов на страничке = " + itemsCollection.Count().ToString(), true);

for(int i=1; i<100; i++) //цикл перебора найденных элементов. luboe_imy.Count означает, что цикл будет крутиться до тех пор, пока не закончатся все найденные нами элементы
{
    
  string ssylk = luboe_imy.GetByNumber(i).GetAttribute("href"); //ложим в переменную ssylk атрибут href нашего элемента
  project.SendInfoToLog(ssylk); //выводим в лог для самопроверки
  tabletest.SetValue(i,2, ssylk); //записываем данные в таблицу: строка, столбец, что записываем
}

package.Save(); //сохраняем в таблицу

Zennoposter ругается на строку string ssylk = luboe_imy.GetByNumber(i).GetAttribute("href");

Выполнение действия CSharp OwnCode. [Строка: 14; Cтолбец: 2] Object reference not set to an instance of an object.
версия 5.34.0.0

Подскажите что не так?
 
Подскажите что не так?

Необходимо делать отладку абсолютно каждого элемента на странице, к которому происходит обращение. В вашем случае, у элемента может не быть атрибута href.
 
Выполнение действия CSharp OwnCode. [Строка: 14; Cтолбец: 2] Object reference not set to an instance of an object.
версия 5.34.0.0

Подскажите что не так?
У вас проблема в ошибке описана - где-то переменная равна null, так как вы не делаете проверок.
 
Спасибо за советы, проблема была в том, что в отличии от сниппета автора, я убрал
instance.ActiveTab.Navigate(" ");
instance.ActiveTab.WaitDownloading();
почему то мне показалось, что обращения instance.ActiveTab.FindElementsByXPath будет достаточно
 

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