XPath查找包含文本的元素,但返回空字符串

时间:2016-06-27 15:13:08

标签: python selenium xpath selenium-firefoxdriver

我正在尝试使用Selenium for Python获取包含特定文本的<p>的文本内容。

我的代码适用于我部署它的大多数页面,但不适用于此particular page以及我遇到的其他一些页面。

如果代码以其他方式返回找到的<p>的文本内容,那么 找到该元素但返回似乎是空字符串的内容。

导致这种情况的原因是什么?

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://advisors.vanguard.com/VGApp/iip/site/advisor/investments/productoverview?fundId=4415")

match_string = "seeks to track the"

elmnt = driver.find_element_by_xpath((
                                    "//*[self::p or self::span or self::div]" +
                                    "[text()[contains(., '%s')]]" % match_string
                                    )).text

print "Result:" + elmnt

部分网页HTML,我想在<p>中获取文字:

<div style="margin:0px;">   
    <h2 style="margin-bottom:8px" class="option1"><!--PPE:Content-188-->Summary of this fund<!--End PPE--></h2>
    <p>Vanguard International Dividend Appreciation ETF seeks to track the performance of a benchmark index that measures the investment return of non-U.S. companies that have a history of increasing dividends.</p>
</div>

0 个答案:

没有答案