Некоректное отображение HtmlElement

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 082
Благодарностей
29
Баллы
48
Всем привет.

Решил написать программу для поиска аудио книг в новостях и столкнулся со следующей сложностью.

Прописал путь XPath к посту, спарсил его id, что бы номер поста был уникальным( во время цикла не повторялись эти номера) и учитываю его в пути XPath к аудио книги Сложность в том, что в XPath Helper Wizard (скрипт для Гугла для определения XPath путей) HtmlElement AudioPost не находит, а условие if(!AudioPost.IsVoid) выполняется, а в нем прописано алгоритм репоста этой аудио книги в определенную группу. То есть выдается ошибка

Если короче, то имеется пост с уникальным номером и в нем МОЖЕТ быть аудио книга, разумеется тогда появляются атрибуты. Сложность в том, если прописать в пути XPath уникальные атрибуты и путь к аудио файлу то условие if(!AudioPost.IsVoid) всегда выполняется, т.е есть аудио книга или нет, а это приводит к ошибке

Ниже привел кусок кода, что бы нагляднее было


// ищу уникальный номер поста

HtmlElement post = Tab1.FindElementByXPath ("//div[начинается с(@id, 'post -')]", y);

строка idpost = post.GetAttribute ("id");

// Подставляю id в пути XPath к аудио книги

HtmlElement AudioPost = Tab1.FindElementByXPath

("//div [@id= '"+idpost+"']/descendant::div[@class='wall_text']/descendant::div[contains(@class,'audio')]/ancestor::div[@class='post_info']/descendant::a[contains(@class,'share')]/span",y);
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 082
Благодарностей
29
Баллы
48
Выкладываю проект, в нем есть точка останова, там и вылезает ошибка. Разумеется перед запуском проекта нужно авторизироваться ВКонтакте
 

Вложения

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 082
Благодарностей
29
Баллы
48
Это правильный проект, в нем есть переменные в котором и лежит путь XPath. Хочу обратить внимание, если в цикле изменить int y=1, то найдется путь XPath ко 2-му посту, а в нем есть аудио файл то есть путь рабочий
 

Вложения

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 082
Благодарностей
29
Баллы
48
может кто нибудь подскажет
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 006
Благодарностей
6 447
Баллы
113
ссылку выложи на страницу где надо брать и покажи скрином что надо брать
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 082
Благодарностей
29
Баллы
48
ссылку выложи на страницу где надо брать и покажи скрином что надо брать
Я выложил проект который все загрузит и установлена точка останова, где ошибка. Но на всякие пожарные ссылка на группу https://vk.com/club77626443
На PrtScn указано 2-ва поста 1 без аудио книги 2-ой с аудио книгой. Суть в том что в 1-ом посте HtmlElement с аудио книгой нет, но тогда почему выполняется условие if(!AudioPost.IsVoid) и приводит к ошибке. При этом в проекте при первом цикле где y=0, в переменных лежит путь XPath элементу, если его скопировать и вставить в XPath Helper Wizard то этот путь XPath не найдется, тогда почему в ZennPoster находится если выполняется условие if(!AudioPost.IsVoid). Пути XPath прописал верно, потому что если в цикле сделать y=1, то в переменных можно скопировать путь XPath и вставить в XPath Helper Wizard, тогда найдется 2-ой пост с аудио книгой
 

Вложения

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