如何访问标签内的标签(获取标签文本等值)?如何获取(段)p标签内的h1标签的值?

时间:2019-06-20 09:25:44

标签: python selenium selenium-webdriver xpath css-selectors

我正在使用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 标签的元素
p_tags=br.find_elements_by_tag_name('p')

它只显示一个元素,而当我这样做时

print(x[0].text)

仅显示

This is a paragraph

如何访问p标签内的 h1 标签。 X_path可以工作吗?如果是,可以请您共享代码吗?

1 个答案:

答案 0 :(得分:2)

<h1>标记实际上是<p>标记的后代。因此,在代码试验中,您已经标识了<p>标记并提取了正确给出这是一个段落的文本。

因此要提取文本,但这是一个h1标签,您必须到达后代<h1>,并且可以使用以下Locator Strategies中的任何一个:

  • 使用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"))