首页 > 解决方案 > 如何使用 selenium/python 访问 HTML 文本?

问题描述

我有如下 HTML 标签:

<div class="mt-md common__EiReviewTextStyles__allowLineBreaks">
    <p class="strong">Pros</p>
    <p>This is the text to be captured</p></div>

我想在 Python 上使用 selenium 访问文本“这是要捕获的文本”。

关于如何做到这一点的任何想法?

标签: python-3.xselenium-webdriverxpathcss-selectorswebdriverwait

解决方案


要提取第二个<p>标签中的文本,即这是要捕获的文本,您必须诱导WebDriverWait并且visibility_of_element_located()您可以使用以下任一定位器策略

  • 使用CSS_SELECTORget_attribute()

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.mt-md.common__EiReviewTextStyles__allowLineBreaks p:nth-of-type(2)"))).get_attribute("innerHTML"))
    
  • 使用XPATHtext

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='mt-md common__EiReviewTextStyles__allowLineBreaks']//following-sibling::p[2]"))).text)
    

推荐阅读