Как получить доступ к тегам (получить значения, такие как текст тегов) внутри тега?Как получить значение тега h1 внутри тега (абзаца) p? - PullRequest
2 голосов
/ 20 июня 2019

Я работаю с Selenium с Python, чтобы решить проблему.Я хочу извлечь информацию внутри абзаца (тег p).Я использую "find_elements_by_tag_name", чтобы найти все теги p на странице.Но как я могу получить доступ к некоторым тегам, которые уже находятся внутри этого абзаца.Например, есть html-файл с кодом, подобным

<p> This is a paragraph <h1> but this is a h1 tag </h1></p>

. Я использовал селен для открытия страницы, например

br=webdriver.Chrome()
br.get('file:///C:/Users/Shady/Desktop/New%20Text%20Document.html')

. Я могу получить доступ к элементам P tag by

p_tags=br.find_elements_by_tag_name('p')

Показывает только один элемент, а когда я делаю

print(x[0].text)

, отображается только

This is a paragraph

Как получить доступтег h1 внутри тега p.Может X_path будет работать?если да, не могли бы вы поделиться кодом?

1 Ответ

2 голосов
/ 20 июня 2019

Тег <h1> на самом деле является потомком тега <p>. Итак, в своих испытаниях кода вы определили тег <p> и извлекли текст, который правильно дал Это абзац .

Таким образом, чтобы извлечь текст , но это тег h1 , вам нужно добраться до потомка <h1>, и вы можете использовать любую из следующих Стратегий локатора :

  • Использование css_selector:

    print(driver.find_element_by_css_selector("p>h1").get_attribute("innerHTML"))
    
  • Использование xpath:

    print(driver.find_element_by_xpath("//p/h1").get_attribute("innerHTML"))
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...