//Переходим на страницу сообщества (нужно для демонстрации работы
Tab Tab1 = instance.ActiveTab;
string strTargetURL = "https://vk.com/live";
if (Tab1.URL!=strTargetURL) {
Tab1.Navigate(strTargetURL);
Tab1.WaitDownloading();
}
//Ось descendant-or-self (потомок-или-сам) содержит всех потомков контекстного узла, отвечающих заданным условиям. Кроме того, в отличие от оси descendant в оси descendant-or-self сам исходный элемент также рассматривается как потенциально целевой
//Пример 1: получаем второго потомка div (внук) для дива с классом wall_post_text
project.SendInfoToLog("1. descendant-or-self: " + Tab1.FindElementsByXPath("//div[@class='wall_text']/descendant-or-self::div[3]").Count);
//в отличие от аналогичного примера с descendant будет возвращён не правнук, а внук текущего элемента, потому как сам исходный элемент является дивом, а значит участвует в счёте (div[3])