Как я могу перейти к родительскому узлу из текущего узла в xpath? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть один xpath на основе класса, и я пытаюсь найти его родительский элемент из текущего.

Путь 1

/html/body/div[2]/div[2]/div/div[2]/div/div[2]/div[2]/div[1]/div/div/p[8]/b[2]/a

Путь 2

/html/body/div[2]/div[2]/div/div[2]/div/div[2]/div[2]/div[1]/div/div/p[8]/b[2]

Путь 1 также может быть представлен с использованием имени класса, например «xyz» driver.find_element_by_xpath('//a[@class="xyz"]')

Как я могу перейти к родительскому узлу из текущего узла?

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Из-за документации XPath вы можете использовать несколько вариантов:

//a[@class="xyz"]/parent::tagname - он выберет только родительский элемент текущего узла

//a[@class="xyz"]/ancestor::tagname - все вам предки (родители, бабушки и дедушки и т. д. c.) текущего узла

//a[@class="xyz"]/preciding-sibling::tagname - выбирает всех братьев и сестер перед текущим узлом

0 голосов
/ 10 июля 2020

Ответ на вопрос Как я могу перейти к родительскому узлу с текущего узла is:

  1. Используйте /.. в вашем xpath. например, //a[@class="xyz"]/.. - это найдет непосредственного родителя a[@class="xyz"]

  2. /parent::* или /parent::<tagname> - ваш код xpath должен быть //a[@class="xyz"]/parent::*

...