繁体   English   中英

python selenium,无法检索xpath的文本

[英]python selenium, cant retrieve text of xpath

我正在努力抓取几页......当页面的结构意味着很多嵌套的 div 时,就会发生这种情况......这是代码页:

<div>
            <section class="ui-accordion-header ui-state-default ui-corner-all ui-accordion-icons" role="tab" id="ui-id-1" aria-controls="ui-id-2" aria-selected="false" aria-expanded="false" tabindex="0"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-e"></span>
                <div class="detail-avocat">
                    <div class="nom-avocat">Me <span class="avocat_name">NAME </span></div>
                                            <div class="type-avocat">Avocat postulant au Tribunal Judiciaire</div>
                                                        </div>
                <div class="more-info">Plus d'informations</div>
            </section>
            <div class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" style="display: none;" id="ui-id-2" aria-labelledby="ui-id-1" role="tabpanel" aria-hidden="true">
                <div class="details">
                    <div class="detail-avocat-row ">
                        <div class="detail-avocat-content overflow-h">
                            <span>Structure :</span> 
                            <div>
                                <p>Cabinet individuel NAME</p>
                            </div>
                        </div>
                    </div>
                    <div class="detail-avocat-row ">
                        <div class="detail-avocat-content overflow-h">
                            <span>Adresse :</span> 
                            <div>
                                 <p>21 rue Belle Isle   57000 VILLE</p>
                            </div>
                        </div>
                    </div>
                    <div class="detail-avocat-row ">
                        <div class="detail-avocat-content overflow-h">
                            <span>Mail :</span> 
                            <div>
                                <p>cabinet@mail.fr</p>
                            </div>
                        </div>
                    </div>
                    <div class="detail-avocat-row">
                        <div class="detail-avocat-content overflow-h">
                            <span>Tél :</span> 
                            <div>
                                <p>Telnum</p>
                            </div>
                        </div>
                    </div>
                    <div class="detail-avocat-row">
                        <div class="detail-avocat-content overflow-h">
                            <span>Fax :</span> 
                            <div>
                                <p>&nbsp;</p>
                            </div>
                        </div>
                    </div>
                                            <div class="contact-avocat"> <a href="mailto:cabinet@mail.fr">Contacter</a> </div>
                        
                </div>
            </div>
        </div>

这是我的python代码:

divtel = self.driver.find_elements(by=By.XPATH,
                                              value=f'//div[@class="detail-avocat-content overflow-h"]/div/p')#div[@class="detail-avocat-content overflow-h"]')
for p in divtel:
    print(p.text)

它不打印任何内容...对于其他类似的页面,它会打印文本,但在这种情况下,嵌套 span 和 div/p 中并没有文本。 你知道为什么吗?

请问我该如何解决我的问题? 谢谢你

.text方法仅在包含文本的 web 元素在网页中可见时才有效。 如果网页元素被隐藏,则必须使用.get_attribute('innerText').get_attribute('textContent').get_attribute('innerHTML') (请参阅此处了解它们之间的区别)。 所以例如改变

print(p.text)

print(p.get_attribute('innerText'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM