我想在带有python和selenium的html表中获取单元格的文本,但是我得到了这个错误:
消息:没有这样的元素:无法找到元素: {" method":" name"," selector":" 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')
根据您的描述,您正在寻找" id" no for" name",因此请使用该方法:
table = driver.find_element_by_id('ctl00_ContentPlaceHolder1_ctl02_tblHistorico')
这将为您提供整个桌子的元素。
如果您对所需的单元格了解了其他信息,则可以找到该特定元素。
https://selenium-python.readthedocs.io/locating-ements.html
例如,要获取您在帖子中标记的文本,您可以使用此字母,因为该类名称只有一个标签:
div = driver.find_element_by_class_name('scroll')
text = div.text
请尝试以下代码。让我知道是否有帮助。
eletext=driver.execute_script("return arguments[0].innerHTML;",driver.find_element_by_xpath("//div[@class='scroll']"))
print(eletext)
希望这对您有帮助。
您想要的是通过CSS选择器获得所需的元素。
这是您要使用的方法。
右CSS选择器表达式将是以下字符串。
#ctl00_ContentPlaceHolder1_ctl02_tblHistorico.TDFQ historico