我想使用python和selenium获取html表格中单元格的文本,但出现此错误:
消息:否这样的元素:无法找到元素: {“方法”:“名称”,“选择器”:“ ctl00_ContentPlaceHolder1_ctl02_tblHistorico”}
html:
<div id="ctl00_ContentPlaceHolder1_ctl02_divTabelaHistorico">
<br />
<table id="ctl00_ContentPlaceHolder1_ctl02_tblHistorico" class="tablefq" width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td id="ctl00_ContentPlaceHolder1_ctl02_tdTitulo" class="tituloTV" height="20" colspan="6">XX</td>
</tr>
<tr>
<td class="TDTVHeader" width="4%"><a id='aSinalMain' class='sinal hand' onclick='aSinalMain_onClick(this)'>[+]</a></td>
<td class="TDTVHeader" colspan="1">XXXnbsp;</td>
<td class="TDTVHeader" colspan="1">XXXbsp;</td>
<td class="TDTVHeader" colspan="1">XXXsp;</td>
<td class="TDTVHeader" colspan="1">XXX</td>
<td class="TDTVHeader" colspan="1">XXX </td>
</tr>
<tr>
<td class="TDFQ" colspan="1"><a id='aSinal' class='sinal hand'>[+]</a></td>
<td class="TDFQ" colspan="1">XXX</td>
<td class="TDFQ" colspan="1">XXX</td>
<td class="TDFQ" colspan="1">XX</td>
<td class="TDFQ" colspan="1">XX</td>
<td class="TDFQ" colspan="1">XX</td>
</tr>
<tr style="display:none;">
<td class="TDFQ historico" colspan="6"><div class=scroll>I WANT HERE HERE HERE</div></td>
</tr>
<tr>
<td class="TDFQ" colspan="1"><a id='aSinal' class='sinal hand'>[+]</a></td>
<td class="TDFQ" colspan="1">XXXp;</td>
<td class="TDFQ" colspan="1">XXX </td>
<td class="TDFQ" colspan="1">XXXT;</td>
<td class="TDFQ" colspan="1">XXX</td>
<td class="TDFQ" colspan="1">XXX </td>
</tr>
</table>
</div>
Python代码:
text = driver.find_element_by_name('ctl00_ContentPlaceHolder1_ctl02_tblHistorico')
答案 0 :(得分:1)
根据您的描述,您正在为“名称”寻找“ id”否,因此请使用方法:
table = driver.find_element_by_id('ctl00_ContentPlaceHolder1_ctl02_tblHistorico')
这将为您提供整个表格的元素。
如果您了解所需单元格的其他信息,则可以找到该特定元素。
https://selenium-python.readthedocs.io/locating-elements.html
例如,要获取您在帖子中标记的文本,可以使用它,因为只有一个标签具有该类名称:
div = driver.find_element_by_class_name('scroll')
text = div.text
答案 1 :(得分:0)
您想要的是通过CSS选择器获取所需的元素。
This是您要使用的方法。
正确的CSS选择器表达式应为以下字符串。
#ctl00_ContentPlaceHolder1_ctl02_tblHistorico.TDFQ historico
答案 2 :(得分:0)
请尝试以下代码。如果有帮助,请告诉我。您需要JavaScript执行程序才能获取隐藏字段的文本。
eletext=driver.execute_script("return arguments[0].innerHTML;",driver.find_element_by_xpath("//div[@class='scroll']"))
print(eletext)
希望这对您有所帮助。