使用Selenium Webdriver,抓取未显示在innerhtml

时间:2018-05-21 20:08:54

标签: python selenium-webdriver selenium-chromedriver innerhtml

我正在尝试使用selenium从页面中获取文本数据。

打印html属性:

element = driver.find_element_by_id("divresults")

结果:

print(element.get_attribute('innerHTML'))

<div id="divDesktopResults"> </div>

结果:

print(element.get_attribute('outerHTML'))

<div id="divresults" data-bind="html:resultsContent"><div id="divDesktopResults"> </div></div>

试图抓住这个元素

结果:

driver.find_element_by_css_selector("span[class='glyphicon glyphicon-tasks']")


Message: no such element: Unable to locate element: {"method":"css selector","selector":"span[class='glyphicon glyphicon-tasks']"}

这是从浏览器复制时的代码。下面还有更多的结果&#39;没有出现在innerhtml打印输出中

<div id="divresults" data-bind="html:resultsContent">
    <div> 
        <div class="row" style="font-size:8pt;"> 
            <a data-toggle="tooltip" style="text-decoration:underline" href="#pdfviewer?ID=D218101736">  
                <strong>D218101736 </strong>  
                <span class="glyphicon glyphicon-new-window"></span> 
            </a> 
        <div class="btn-group" style="font-size:8pt;margin-left:10px;" id="btnD218101736">   
            <span style="display:none;font-size:8pt;" id="lblD218101736"> Added To Cart</span> 
            <button type="button" style="font-size:8pt;" class="btn btn-primary dropdown-toggle" data-toggle="dropdown"> Add To Cart 
                <span class="caret"></span> 
            </button> 
                <ul class="dropdown-menu" role="menu"> 
                    <li> <a href="#" onclick="addToCart('D218101736', event)"><strong>Regular ($7.00)</strong></a> </li> 
                    <li> <a href="#" onclick="addToCartCertified('D218101736', event)"><strong>Certified ($12.00)</strong></a> </li> 
                </ul> 
        </div>  
    </div> <br> 

    <ul class="nav nav-tabs compact"> 
        <li class="active"> 
            <a data-toggle="tab" href="#D218101736_Doc"> 
                <span class="glyphicon glyphicon-file"></span>  
                <span>Doc Info</span> 
            </a> 
        </li> 
        <li class="hidden-xs"> 
            <a data-toggle="tab" href="#D218101736_Thumbnail"> 
                <span class="glyphicon glyphicon-th-large"></span>  
                <span>Thumbnail</span>
            </a> 
        </li> 
       ....

如何在实例中的divresults下获取数据?

1 个答案:

答案 0 :(得分:0)

我的猜测是,这是两件事之一:

  1. 有多个元素与该定位器匹配。要调查此问题,请尝试在开发控制台中使用$$("#divresults")并确保它返回1.如果它返回多个,请运行$$("#divresults")[0]并确保返回的元素是您想要的元素。如果是,请继续执行步骤2.如果不是,则需要找到更具体的定位器。如果您需要我们的帮助,您需要提供指向所需元素的页面或更多周围HTML的链接。
  2. 您需要添加一个等待,以便元素的内容可以完成加载。您可以等待#divresults strong之类的定位器或任意数量的定位器来查找缺少的一些元素。你会等待它们可见(或至少存在)。有关详细信息和选项,请参阅the docs