【问题标题】:Python and Selenium get value of specific html cellPython 和 Selenium 获取特定 html 单元格的值
【发布时间】:2019-02-18 22:22:51
【问题描述】:

我想使用 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&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')

【问题讨论】:

    标签: python selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    根据您的描述,您正在寻找“id”没有“name”,所以使用方法:

    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
    

    【讨论】:

      【解决方案2】:

      请尝试以下代码。如果有帮助,请告诉我。您需要 JavaScript 执行器来获取隐藏字段的文本。

      eletext=driver.execute_script("return arguments[0].innerHTML;",driver.find_element_by_xpath("//div[@class='scroll']"))
      print(eletext)
      

      希望对您有所帮助。

      【讨论】:

      • 循环只带标签tr..不带标签tr
        我想在这里
      • 我已更新我的答案以获得您想要的值。如果有帮助,请接受我的答案。
      • 谢谢 Kajal Kundu 这段代码解决了我的问题...我很长一段时间都在尝试获取此文本。谢谢
      • 您能否通过单击我的代码消息上的接受按钮来接受我的回答。
      【解决方案3】:

      您想要的是通过 CSS 选择器获取所需的元素。

      This 是您要使用的方法。

      正确的 CSS 选择器表达式将是以下字符串。

      #ctl00_ContentPlaceHolder1_ctl02_tblHistorico.TDFQ historico
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签