Функции XPath
//Переходим на страницу сообщества (нужно для демонстрации работы
Tab Tab1 = instance.ActiveTab;
string strTargetURL = "https://vk.com/live";
if (Tab1.URL!=strTargetURL) {
Tab1.Navigate(strTargetURL);
Tab1.WaitDownloading();
}
//Описание всех функций на русском языке: https://msdn.microsoft.com/ru-ru/library/ms256482%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
//1. функция count: возвращает количество элементов - https://msdn.microsoft.com/ru-ru/library/ms256103(v=vs.110).aspx
//Пример: показываем все посты, в тексте которых более одной ссылки
project.SendInfoToLog("1. функция count: " + Tab1.FindElementsByXPath("//div[@class='wall_post_text' and count(a)>1]").Count);
//2. функция id: ищет элемент по его уникальному id - https://msdn.microsoft.com/ru-ru/library/ms256148(v=vs.110).aspx
//Пример: получаем ссылку на картинку-аватар сообщества
project.SendInfoToLog("2. функция id: " + Tab1.FindElementByXPath("//div[@id='page_avatar']/img",0).GetAttribute("src"));
//3. функция last: возвращает последний элемент последовательности (если отнимем 1 - то будет предпоследний) - https://msdn.microsoft.com/ru-ru/library/ms256083(v=vs.110).aspx
//Пример: получение предпоследнего подгруженного поста на странице
project.SendInfoToLog("3. функция last: " + Tab1.FindElementsByXPath("(//div[@class='wall_post_text'])[last()-1]").
GetByNumber(0).GetAttribute("InnerHtml"));
//4. функция local-name: получение локальной части имени ноды: https://msdn.microsoft.com/ru-ru/library/ms256070(v=vs.120).aspx
//пока не нашёл где продемонстрировать, обычно используется при парсинге xml
//5. функция name: получение локального имени ноды: https://msdn.microsoft.com/ru-ru/library/ms256070(v=vs.120).aspx
//пока не нашёл где продемонстрировать, обычно используется при парсинге xml
//например путь "name(//*[starts-with(@id, 'post-')])" вернёт строку "div" (имя первого узла, соответствующего условиям)
//6. функция namespace-uri: ниверсальный идентификатор ресурса (URI) пространства имен для развернутого имени узла в аргументе набора узлов,
//расположенном в документе первым (сам пока не понял что это за ересь): https://msdn.microsoft.com/ru-ru/library/ms256466(v=vs.120).aspx
//пока не нашёл где продемонстрировать, обычно используется при парсинге xml
//7. функция position: возвращает позицию элемента в последовательности
//Пример: получение 5 последних подгруженных постов
project.SendInfoToLog("7. функция position: " + Tab1.FindElementsByXPath("(//div[@class='wall_post_text'])[position()>=last()-4]").Count);