我正在尝试使用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>