【问题标题】:How to access tags (get values like text of tags) inside a tag? How to get value of h1 tag inside a (paragraph) p tag?如何访问标签内的标签(获取标签文本等值)?如何在(段落)p标签中获取h1标签的值?
【发布时间】:2019-06-20 09:25:44
【问题描述】:

我正在使用 Selenium 和 Python 来解决问题。我想提取段落内的信息(p 标签)。我正在使用“find_elements_by_tag_name”来定位页面中的所有 p 标签。但是我怎样才能访问该段落中已经存在的一些标签。例如,有一个 html 文件,其中包含类似的代码

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

我已经使用 selenium 打开页面,如

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 可以工作吗?如果是,可以分享一下代码吗?

【问题讨论】:

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


    【解决方案1】:

    &lt;h1&gt; 标签实际上是&lt;p&gt; 标签的后代。因此,在您的代码试验中,您已经确定了 &lt;p&gt; 标记并提取了正确给出 This is a paragraph 的文本。

    所以要提取文本但这是一个h1标签,你必须到达后代&lt;h1&gt;,你可以使用以下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"))
      

    【讨论】:

    • 感谢您的回答。你也能解释一下吗?
    • @Mahesh 添加了更多详细信息。如果您有任何问题,请告诉我。
    • 你也可以看看这个吗? stackoverflow.com/questions/56686492/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2017-05-09
    相关资源
    最近更新 更多