selenium提取不了标签文本
2024-09-04 21:01:54
1.举个例子:selenium使用driver.find_element_by_xpath().text 提取不到标签文本??
如果我们提取的元素文本为空时,而不是我们想要的文本时,这时可能就是因为你所定位的元素被隐藏了,我们确认下是不是真的被隐藏了。。。
1.判断是否被隐藏
aa = driver.find_element_by_xx().is_displayed()
print(aa)
打印结果,如果返回false.那就说明被隐藏了
2.怎么解决?
方法一: 修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed() 值为true.
方法二: is_displayed() 为false的元素,依然可以通过getAttribute()方法获取元素的属性.
由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串,可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'),
通过textContent, innerText, innerHTML等属性获取。
(1)innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
例如,<div>Hello <p>World!</p></div>的innerHTML会得到Hello <p>World!</p>
(2)textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签,textContent 是 W3C 兼容的文字内容属性,但是 IE 不支持
(3)innerText 不是 W3C DOM 的指定内容,FireFox不支持、谷歌也不支持
举个例子
ss = driver.find_element_by_class_name('xxx') # 定位
print(ss.get_attribute("innerHTML")) # 用innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
print(ss.get_attribute('textContent')) #用textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签。
print(ss.get_attribute('innerText')) #innerText 不是 W3C DOM 的指定内容,FireFox不支持
参考https://blog.csdn.net/boyStray/article/details/81065461
最新文章
- mysql忘记密码
- OS X 在Cisco无线环境下丢包分析 part 2
- bat批处理文件命令详解
- 解决outlook不能显示鼠标问题
- HTML5高防win8风格
- [改善Java代码]不同的列表选择不同的遍历方法
- 走进React的学习之路
- C#中A a=new B()的意义
- Postman 基本操作学习
- How can I get the logical valume by the datafile names and ASM disks?
- seajs + easyui [转]
- HashMap,LinkedHashMap,TreeMap的区别(转)
- hdu 4920 Matrix multiplication(矩阵乘法)2014多培训学校5现场
- SDUTOJ 1298 活动选择
- Java中this关键字的作用
- C++ enum用法小技巧
- bootmgr解压缩
- vue 模板template
- bzoj1444[Jsoi2009]有趣的游戏[AC自动机]
- 收藏 —— KVM网络虚拟化
热门文章
- koa2实现登录注册功能(ejs+mongodb版)
- axure破解版
- 解决 使用migrations 执行update-database 出现System.InvalidOperationException: 实例失败的问题
- myeclipse 报错:Set project compiler compliance settings to &#39;1.5&#39;
- Stm32 控制1.44寸液晶显示图片 基于stm32f051k8u6
- 在Mac OS终端的Terminal 中使用Sublime Text3
- Java数据库事务四大特性以及隔离级别
- Python爬虫实战——反爬策略之模拟登录【CSDN】
- Tyvj 1518 CPU监控(线段树)
- STL————bitset