博客
关于我
《python3 网络爬虫开发实战》Selenium使用过程中text方法无法获取节点信息文本值
阅读量:300 次
发布时间:2019-03-03

本文共 963 字,大约阅读时间需要 3 分钟。

在学习过程中,我遇到了一个问题,使用Selenium获取标签文本时发现内容为空。例如,在提取“设置”a标签的文本时,原本的代码无法获取到预期的信息。

最初的代码如下:

from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.baidu.com'
browser.get(url)
input = browser.find_element_by_css_selector('.pf')
print(input.text)
browser.close()

运行结果显示,元素不存在,input.text 的值为 None。尝试使用 input.is_displayed() 方法后,发现返回值为 False,这表明元素可能被隐藏或不再存在于页面中。Selenium WebDriver 只会与可见元素交互,因此隐藏元素的文本信息会返回空字符串。

为了解决这个问题,我尝试使用 get_attribute('textContent') 方法来获取元素的文本内容。修改后的代码如下:

from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.baidu.com'
browser.get(url)
input = browser.find_element_by_css_selector('.pf')
print(input.get_attribute('textContent'))
browser.close()

运行后,能够成功获取到 “设置” a 标签的文本内容。这种方法适用于获取隐藏或不可见元素的文本信息。

通过这个实验,我学会了一个重要的技巧:当 find_element_by_css_selector 方法无法找到元素时,使用 get_attribute('textContent')get_attribute('innerText') 方法可以获取元素的文本内容。这个方法特别适用于处理隐藏或不可见的元素。

总结一下,解决问题的关键在于理解Selenium的工作原理,并掌握正确的方法来获取元素的文本信息。

转载地址:http://vvhl.baihongyu.com/

你可能感兴趣的文章
Nginx upstream性能优化
查看>>
Nginx 中解决跨域问题
查看>>
Nginx 动静分离与负载均衡的实现
查看>>
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
查看>>
nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
查看>>
Nginx 反向代理解决跨域问题
查看>>
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 常用配置清单
查看>>
nginx 常用配置记录
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>