使用selenium无法获取到标签的文本内容的解决方法

在我们使用selenium进行抓取网页的时候,可能有的时候会抓取不到内容。

selenium 获取不了标签文本的解决方法 ------ 即driver.find_element_by_xxx().text() 为空的解决办法

<a href="http://www.baidu.com">ba百度</a> 

例如:我们在用driver.find_element_by_xxx().text()获取文本的时候,得到的文本为空,
那么当前定位的元素可能被隐藏了。

1.判断是否被隐藏 。 driver.find_element_by_xx().is_displayed()

print(driver.find_element_by_xx().is_displayed() )

打印结果,如果得到 false的结果.那就说明被隐藏了

2.怎么解决?

is_displayed() 为false的元素,依然可以通过**getAttribute()**方法获取元素的属性.

由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。
可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'), 通过**textContent, innerText, innerHTML**等属性获 取。(划重点)

innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
例如,<div>Hello <p>World!</p></div>的innerHTML会得到Hello <p>World!</p>
textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值