当前位置: 首页 > 知识库问答 >
问题:

使用python循环表行并在selenium中打印文本

秦皓君
2023-03-14

我有一个超文本标记语言表:

<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)

但这会带来错误:

硒。常见的例外情况。NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:”//div[@class='report-data']/以下同级::table/tbody/tr“}

共有1个答案

郑景胜
2023-03-14

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

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)
 类似资料:
  • 我目前正在尝试使用Selenium和python来实现一个过程的自动化,但我遇到了一个障碍。该列表是树下列表的一部分。我已经用以下xpath标识了树的基础 我正在尝试循环通过“项目”部分,但需要和点击任何与“输入”标签 由于某些原因。如果我使用下面这样的东西,click()将不起作用。它只有在我使用WebDriverWait时才起作用。我必须使用web驱动等待方法,任何时候,我需要点击页面上的东西

  • 问题内容: 如何在文本文件中搜索关键短语或关键字,然后打印该关键短语或关键字所在的行? 问题答案: 打印出多行(以一种简单的方式) 逗号防止输出中出现多余的空格。尾随的打印语句将结果划分为不同的行。 或者更好(从Mark Ransom偷回来):

  • 问题内容: 我有一个关于在Python 3中使用循环在同一行上打印的问题。我搜索了答案,但找不到任何相关内容。 所以,我有这样的事情: 当用户键入“短句”时,该功能应该对其进行处理,并应将其打印在同一行上。假设该函数在每个单词的末尾添加了“ t”,因此输出应为 但是,目前的输出是: 如何轻松在同一行上打印结果?还是我应该做一个新的字符串 它被迭代,最后我打印出来? 问题答案: 在函数中使用参数 还

  • 我有一个python for循环,它执行一个bash脚本,如下所示(我将其简化为只包含需要显示的内容),我需要它在for循环中同时运行所有这些bash脚本,但要等到它们全部完成后才能继续串联。bash脚本是我唯一希望并行运行的部分。它是在同一for循环的下游做一些需要串联完成的事情。这可能吗? 以下是系列作品。没有脚本的并行执行,因为。如果我删除. etc(),它几乎立即出错,下游的任何东西都不再

  • 我只想用下面的公式从任何给定的数字创建一个因子列表。我不允许使用列表,因此,我模仿使用字符串如下: 例如,假设我们选择num=12:

  • 问题内容: 如果我想在Python中打印多行文本而不用为每一行都键入内容,是否有办法做到这一点?我将其用于ASCII艺术。 (Python 3.5.1) 问题答案: 您可以使用三引号(单引号或双引号):