我有一个网页,其中的表仅在单击“检查元素”时出现,并且在“查看源”页中不可见。该表仅包含两行,每行有多个单元格,如下所示:
<table class="datadisplaytable">
<tbody>
<tr>
<td class="dddefault">16759</td>
<td class="dddefault">MATH</td>
<td class="dddefault">123</td>
<td class="dddefault">001</td>
<td class="dddefault">Calculus</td>
<td class="dddefault"></td>
<td class="dddead"></td>
<td class="dddead"></td>
</tr>
<tr>
<td class="dddefault">16449</td>
<td class="dddefault">PHY</td>
<td class="dddefault">456</td>
<td class="dddefault">002</td>
<td class="dddefault">Physics</td>
<td class="dddefault"></td>
<td class="dddead"></td>
<td class="dddead"></td>
</tr>
</tbody>
</table>
我要做的是遍历行并返回每个单元格中包含的文本。我似乎不能真正使用Selenium。元素不包含id,我不知道如何获取它们。我不太熟悉xpath之类的东西。
以下是返回TypeError
的调试尝试:
def check_grades(self):
table = []
for i in self.driver.find_element_by_class_name("dddefault"):
table.append(i)
print(table)
从行中获取文本的简单方法是什么?
另一个版本(Padraic Cunningham修改和更正的帖子): 用Python 3.x测试
如果要使用xpath逐行进行,可以使用以下命令:
哪些输出:
使用
td[text()]
将避免为不包含文本的td返回任何none。因此,使用硒也可以:
对于多个表:
XPath很脆弱。最好使用CSS选择器或类:
相关问题 更多 >
编程相关推荐