Как искать родительский (с некоторым родительским атрибутом) найденный xpath? - PullRequest
0 голосов
/ 25 сентября 2018

В таблице присутствуют строки со следующей иерархией:

//div[@class='table']
    //div[@class='some_row_n']//......some xpath...//<child with text abc>
    //div[@class='some_row_m']//......some xpath...//<child with text xyz>

Я могу достичь xpath с помощью

//div[@class='table']//div[descendant::text()="abc"]

Но есть ли способ, с помощью которого я мог бы выяснитьxpath к родительской строке 'some_row_n' (или 'some_row_m' в зависимости от искомого текста).Проблема в том, что количество элементов в разделе xpath .....some xpath... выше неизвестно во время разработки.

Я пытаюсь добиться этого без необходимости циклически перебирать каждую строку, чтобы найти текст. Это может значительно сократить усилия по кодированию.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Если это ваш xpath: //div[@class='table']//div[descendant::text()="abc"], то вы можете обратиться к его родителю или найти его родительский элемент, используя «родительские» оси, как показано ниже:

<yourXpath>/parent::*

Inв вашем случае это становится:

//div[@class='table']//div[descendant::text()="abc"]/parent::*

Приведенный выше xpath извлечет вас //div[@class='some_row_n'], если элемент строки является родителем дочернего элемента 'child with text abc'

0 голосов
/ 25 сентября 2018
//div[@class='table']//div[contains(@class, 'some_row')][.//*[text()='abc']]

Если дочерний элемент с текстом abc является фиксированным именем тега, например, это тег span, вы можете сделать выше xpath более точным, как указано ниже:

//div[@class='table']//div[contains(@class, 'some_row')][.//span[text()='abc']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...