Python和硒获得特定HTML细胞的值



我想在带有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&nbsp;</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&nbsp;</td>
            <td class="TDFQ" colspan="1">XXXT;</td>
            <td class="TDFQ" colspan="1">XXX</td>
            <td class="TDFQ" colspan="1">XXX&nbsp;</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

最新更新