0

我试图弄清楚如何使用find_element_by_xpath()来查找页面上的表格元素并显示或打印它们。

这是页面信息的片段:

<tbody id="listContainer_databody">  
            <tr id="listContainer_row:0" class=""><th  scope="row" class="" valign="top"></th>
                <td  class="" valign="top">2012Fall-ACC1300-01</td>
                     <td  class="" valign="top">INTRO TO FINANCIAL ACCOUNTING</td>
                     <td  class="" valign="top">3/2/12 1:03 PM</td>
                     <td  class="" valign="top">jdoe</td>
                     <td  class="" valign="top">Jane Doe</td>
                     <td  class="" valign="top">2012Fall_CRS</td>
            </tr>

我找不到任何显示如何实际执行此操作的内容,因此我可以打印如下:

                     2012Fall-ACC1300-01
                     INTRO TO FINANCIAL ACCOUNTING
                     3/2/12 1:03 PM
                     jdoe
                     Jane Doe
                     2012Fall_CRS

到目前为止,我在 Python 中的代码并没有给我一个错误,但我似乎无法显示我想要的结果或至少一些信息:

try:
xpath = '//*[@id="listContainer_databody"]'
    xpath2 = '//*[@id="listContainer_row:0"]/td[2]' 
results = browser.find_element_by_xpath(xpath2)
print results.get_attribute('td[2]')

except NoSuchElementException:
 assert 0, "can't find xpath"
4

2 回答 2

0

您的 xpath ( xpath2) 不正确。您应该'//*[@id="listContainer_row:0"]/td'用作 xpath,它将返回 Web 元素列表。您可能需要使用find_elements_by_xpath、迭代 Web 元素并get_text()在每个元素上使用该方法。

于 2013-01-05T17:04:40.213 回答
0

我让它工作了!下面的代码:

xpath = '//*[@id="listContainer_row:0"]/td'
for i in browser.find_elements_by_xpath(xpath):
    print (i.text)

产生了以下结果:

                 2012Fall-ACC1300-01
                 INTRO TO FINANCIAL ACCOUNTING
                 3/2/12 1:03 PM
                 jdoe
                 Jane Doe
                 2012Fall_CRS

这里的文档有帮助!

于 2013-01-05T20:23:10.183 回答