【发布时间】:2016-03-29 02:26:07
【问题描述】:
我目前让 Selenium 在 Python 中填充一个列表,其中包含所有表行值。
我现在想在每行数据的末尾放置一个断点,并使用表头作为键。我不确定如何最好地表示字典中的表数据。但我唯一的要求是我可以通过表头和行头来查询(行头是每行的第一个值)。
对于表...
<table class="confluenceTable tablesorter">
<thead>
<tr class="sortableHeader">
<th data-column="0" class="confluenceTh sortableHeader tablesorter-headerSortDown">
<div class="tablesorter-header-inner">First Name</div>
</th>
<th data-column="1" colspan="1" class="confluenceTh sortableHeader">
<div class="tablesorter-header-inner">Last Name</div>
</th>
<th data-column="2" class="confluenceTh sortableHeader">
<div class="tablesorter-header-inner">Function</div>
</th>
</tr>
</thead>
<tbody class="">
<tr>
<td colspan="1" class="confluenceTd">John</td>
<td colspan="1" class="confluenceTd">Smith</td>
</tr>
<tr>
<td colspan="1" class="confluenceTd"><span>Jane</span></td>
<td colspan="1" class="confluenceTd"><span>Doe</span></td>
</tr>
</tbody>
</table>
我在简化表中包含了 colspan、类等,以防它们有用。
def get_test_data(driver):
table = driver.find_element_by_xpath("//table")
rawdata = []
for td in table.find_elements_by_tag_name('td'):
rawdata.append(td.text)
pprint(rawdata)
用上面的python我可以得到
[u'John',
u'Smith',
u'Jane',
u'Doe']
我想得到
{
"First Name": "John",
"LastName": "Smith"
},
{
"First Name": "Jane",
"Last Name": "Doe"
}
或者类似的东西,所以我可以在字典中查询数据。
【问题讨论】:
-
问题已被投票 ;-)
标签: python python-2.7 selenium xpath selenium-webdriver