繁体   English   中英

使用Selenium WebDriver遍历表

[英]Loop through a table using selenium webdriver

我有一个可以在此处找到的表: Ontario Gov Employee Directory,并且我试图遍历该表以提取数据,但仍在努力寻找能够做到这一点的xpath。

该表没有ID,当我检查元素时会看到:

<table title="results_list" border="0" width="100%" cellspacing="0" cellpadding="0">

  <tbody>
    <tr>
      <td class="content" valign="top" align="right" width="50">1. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("32528")'>Aagaard, Lindsay</a>] [ Senior Policy Advisor ] [TREASURY BOARD SECRETARIAT]
        <br>[DEPUTY PREMIER AND PRESIDENT OF THE TREASURY BOARD, Toronto]

        <!-- [416-327-0948]  -->



        [416-327-0948] [



        <a href="mailto:lindsay.aagaard@ontario.ca">
                                                                            lindsay.aagaard@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">2. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("34417")'>Aalto, Margaret</a>] [ Probation Officer ] [CHILDREN AND YOUTH SERVICES]
        <br>[THUNDER BAY, Thunder Bay]

        <!-- [807-475-1310]  -->



        [807-475-1310] [



        <a href="mailto:margaret.aalto@ontario.ca">
                                                                            margaret.aalto@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">3. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("9187")'>Aarlaht, Andrew</a>] [ Business Analyst ] [COMMUNITY AND SOCIAL SERVICES]
        <br>[HAMILTON, BUSINESS SERVICES UNIT, Hamilton]

        <!-- [905-521-7335]  -->



        [905-521-7335] [



        <a href="mailto:andrew.aarlaht@ontario.ca">
                                                                            andrew.aarlaht@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">4. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("9187")'>Aarlaht, Andrew</a>] [ Business Analyst ] [CHILDREN AND YOUTH SERVICES]
        <br>[HAMILTON, BUSINESS SERVICES UNIT, Hamilton]

        <!-- [905-521-7335]  -->



        [905-521-7335] [



        <a href="mailto:andrew.aarlaht@ontario.ca">
                                                                            andrew.aarlaht@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">5. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("19146")'>Aarons, Drew</a>] [ Messenger ] [LEGISLATIVE OFFICES]
        <br>[PARLIAMENTARY PROTOCOL, Toronto]

        <!-- [416-325-7455]  -->



        [416-325-7455] [



        <a href="mailto:daarons@ola.org">
                                                                            daarons@ola.org</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">6. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("113729")'>Aaswaakshin, Neegann</a>] [ Articling Student ] [ABORIGINAL AFFAIRS]
        <br>[LEGAL SERVICES, Toronto]

        <!-- [416-212-2271]  -->



        [416-212-2271] [



        <a href="mailto:Neegann.Aaswaakshin@ontario.ca">
                                                                            Neegann.Aaswaakshin@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">7. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("32196")'>Abad, Lilian</a>] [ Executive Assistant ] [TRANSPORTATION]
        <br>[GO TRANSIT, Toronto]

        <!-- [416-202-5506]  -->



        [416-202-5506] [



        <a href="mailto:lilian.abad@gotransit.com">
                                                                            lilian.abad@gotransit.com</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">8. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("114240")'>Abadesso, Jennifer</a>] [ Employment Program Consultant (Acting) ] [TRAINING, COLLEGES AND UNIVERSITIES]
        <br>[FOUNDATION SKILLS, Toronto]

        <!-- [416-327-2065]  -->



        [416-327-2065] [



        <a href="mailto:jennifer.abadesso@ontario.ca">
                                                                            jennifer.abadesso@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">9. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("104293")'>Abakunzi, Louis</a>] [ Customer Service Representative (Bilingual) ] [GOVERNMENT AND CONSUMER SERVICES]
        <br>[SERVICEONTARIO CONTACT CENTRE - NORTH YORK, Toronto]

        <!-- [416-235-2999]  -->



        [416-235-2999] [



        <a href="mailto:Louis.K.Abakunzi@ontario.ca">
                                                                            Louis.K.Abakunzi@ontario.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

    <tr>
      <td class="content" valign="top" align="right" width="50">10. &nbsp;</td>
      <td class="content">[<a class="results" href='javascript:showEmployeeDetail("19309")'>Aban, Edencio</a>] [ Audit Supervisor ] [ATTORNEY GENERAL]
        <br>[AUDIT AND COMPLIANCE, Toronto]

        <!-- [416-326-6295]  -->



        [416-326-6295] [



        <a href="mailto:edencio.aban@agco.ca">
                                                                            edencio.aban@agco.ca</a>]
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>

  </tbody>
</table>

如何遍历这些行中的数据?

它是表中的表,然后具有一些非常标准的格式。 你有什么挑战?

该表没有ID,当我检查元素时会看到:

它具有您可以使用的其他属性,例如标题。 使用xpath //table[@title="results_list"]/tbody/tr/td从最里面的表中查找每个数据元素。 或从xpath中删除最后一个/td以获取每一行。 之后,找到其下的每个td元素并使用其text

注意:最里面的表具有第一列的序列号和第二列的实际数据。 我建议获取每个td ,然后使用'innerHTML'属性或elem.text 之后,使用常规表达式提取不同部分。

>>> all_tdata = driver.find_elements_by_xpath('//table[@title="results_list"]/tbody/tr/td')
>>> for td in all_tdata:
...     print td.get_attribute('innerHTML')  # save this in var and regex it
...     # or
...     data = td.text

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM