2016-02-27 70 views
1

我有一個表,可以在這裏找到:Ontario Gov Employee Directory,我試圖通過表循環拉出數據,但努力找到xpath能夠這樣做。使用硒webdriver通過表循環

的表沒有一個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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</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:[email protected]"> 
                      [email protected]</a>] 
     </td> 
    </tr> 
    <tr> 
     <td>&nbsp;</td> 
    </tr> 

    </tbody> 
</table> 

我如何遍歷這些行的數據?

回答

0

這是一個表格內的表格,然後有一些非常標準的格式。你有什麼挑戰?

的表沒有一個id,當我檢查元素我看到:

它具有其他屬性就可以使用,如標題。使用xpath //table[@title="results_list"]/tbody/tr/td從最裏面的表中查找每個數據元素。或者從xpath中刪除最後一個/td以獲取每一行。之後,找到它下面的每個td元素並使用它的text

注意:最裏面的表格的第一列有序列號,第二列有實際的數據。我建議獲取每個td,然後使用'innerHTML'屬性或elem.text。之後,使用常規的exppresion來提取不同的部分。

>>> 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 
+0

謝謝!我做了類似的事情,我使用xpath和getText()函數來檢索內部HTML,並相應地解析字符串。 @aneroid – kknaguib