微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Selenium:查找h1元素,但返回空文本字符串

我正在尝试在此page标题获取文本:

enter image description here

iShares FTSE MIB UCITS ETF EUR (dist)

标签如下所示:

<h1 class="product-title" title="iShares FTSE MIB UCITS ETF EUR (dist)"> iShares FTSE MIB UCITS ETF EUR (dist) </h1>

我正在使用此xPath:

xp_name = ".//*[@class[contains(normalize-space(.), 'product-title')]]"

在Selenium WebDriver for Python中通过.text检索:

new_name = driver.find_element_by_xpath(xp_name).text

驱动程序找到了xpath,但是当我打印new_name时,macOS Terminal仅打印空白字符串:“”

这可能是什么原因?

enter image description here

注意:我还尝试了其他xpath替代方法,获得了相同的结果,例如:

xp_name = ".//*[@id='fundHeader']//h1"

解决方法:

问题在于,有两个具有完全相同的外部HTML的h1元素:第一个是隐藏的,第二个不是.你可以用

print(len(driver.find_elements_by_xpath('//h1[@class="product-title "]')))

text属性允许您仅从可见元素获取文本,而textContent属性还允许获取隐藏元素的文本

尝试更换

new_name = driver.find_element_by_xpath(xp_name).text

new_name = driver.find_element_by_xpath(xp_name).get_attribute('textContent')

或简单地处理第二个(可见)标头:

driver.find_elements_by_xpath('//h1[@class="product-title "]')[1].text

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐