我正在使用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可以工作吗?如果是,可以请您共享代码吗?
答案 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"))