【问题标题】:Loop through table rows and print text in selenium using python使用 python 循环遍历表行并在 selenium 中打印文本
【发布时间】:2021-05-02 09:36:15
【问题描述】:

我有一个 HTML 表格:

<div class="report-data">
  <table>
    <thead>
      <tr>
        <td></td>
        <td>All</td>
        <td>Long</td>
        <td>Short</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Net Profit</td>
        <td>
          <div>3644.65</div>
          <div><span class="additional_percent_value">3.64&nbsp;%</span></div>
        </td>
        <td>
          <div>3713.90</div>
          <div><span class="additional_percent_value">3.71&nbsp;%</span></div>
        </td>
        <td>
          <div><span class="neg">69.25</span></div>
          <div><span class="additional_percent_value"><span class="neg">0.07&nbsp;%</span></span>
          </div>
        </td>
      </tr>
      <tr>
        <td>Net Profit</td>
        <td>
          <div>3644.65</div>
          <div><span class="additional_percent_value">3.64&nbsp;%</span></div>
        </td>
        <td>
          <div>3713.90</div>
          <div><span class="additional_percent_value">3.71&nbsp;%</span></div>
        </td>
        <td>
          <div><span class="neg">69.25</span></div>
          <div><span class="additional_percent_value"><span class="neg">0.07&nbsp;%</span></span>
          </div>
        </td>
      </tr>
    </tbody>
  </table>
</div>

现在我想打印每一行的所有 td[1] 值,所以我的输出应该是:

净利润

净利润

所以我执行了以下代码:

    for dt in driver.find_element_by_xpath("//div[@class='report-data']/following-sibling::table/tbody/tr"):
        text_label = dt.find_element_by_xpath(".//td").text
        print(text_label)

但它会抛出错误:

selenium.common.exceptions.NoSuchElementException: 消息:没有这样的 元素:无法定位元素: {"method":"xpath","selector":"//div[@class='report-data']/following-sibling::table/tbody/tr"}

【问题讨论】:

    标签: python python-3.x selenium-webdriver xpath selenium-chromedriver


    【解决方案1】:

    你快到了,我相信。试试这个:

    content = driver.find_elements_by_xpath("//div[@class='report-data']/table/tbody/tr")
    for dt in content:
        text_label = dt.find_element_by_xpath("./td").text
        print(text_label)
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多