我正在尝试弄清楚如何使用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"
答案 0 :(得分:0)
您的xpath(xpath2
)不正确。您应该使用'//*[@id="listContainer_row:0"]/td'
作为xpath,它将返回Web元素列表。您可能需要使用find_elements_by_xpath
,迭代Web元素并在每个M上使用get_text()
方法。
答案 1 :(得分: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