rediffusion
11/7/2017 - 10:30 AM

6. descendant-or-self

Оси XPath

//Переходим на страницу сообщества (нужно для демонстрации работы
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])