selenium 获取不了标签文本的解决方法
selenium 获取不了标签文本的解决方法 ------ 即driver.find_element_by_xxx().text() 为空的解决办法
如果得到的文本只为空,而非我们期望的baidu,那么当前定位的元素可能被隐藏了。
1.判断是否被隐藏 。 driver.find_element_by_xx().is_displayed()
打印结果,如果得到 false的结果.那就说明被隐藏了
2.怎么解决?
方法一: 修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed() 值为true.
方法二: 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 标签。textContent
是 W3C 兼容的文字内容属性,但是 IE 不支持innerText
不是 W3C DOM 的指定内容,FireFox不支持
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例如:定位126发送邮件成功时定位“发送成功”文本
text= driver.find_element_by_class_name('tK1') # 定位 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不支持
用谷歌浏览器运行以上3句print结果如下
1.<b class="nui-ico se0 pv1"></b>发送成功<span style="font-size: 14px; margin-left: 5px;"><a id="_mail_link_39_262" href="javascript:void(0)" class=" js-component-link nui-txt-link" hidefocus="hidefocus">可用手机接收回复</a></span><span></span><span style="font-size: 14px; margin-left: 5px;"><a id="_mail_link_40_264" href="javascript:void(0)" class=" js-component-link nui-txt-link" hidefocus="hidefocus"><b class="nui-ico nui-ico-sms nui-ico-sms" style="margin-bottom: 10px;"></b>免费短信通知</a></span>
2.发送成功可用手机接收回复免费短信通知
3.<为空>
可见 innerText 也不支持谷歌呀!
最新文章
- UVA1625Color Lenth(DP+LCS变形 未AC)
- ubuntu 14.04 ns2.35 ***buffer overflow detected **: ns terminated解决办法
- SQL基础之数据库快照
- 数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
- HBase with MapReduce (Only Read)
- window下使用vnc远程登录阿里云ECS/ubuntu图形界面
- ls -F一种非常有用的ls格式
- 用VMware安装虚拟系统时出现Invalid system disk,Replace the disk and then press any key
- BZOJ2310 : ParkII
- Groupon面经Prepare: Max Cycle Length
- 线程间操作无效 progressBar2线程不能被访问
- css控制table的td宽度
- 【20190405】JavaScript-正则式匹配与替换结果解析
- 出现Failed to get convolution algorithm的解决方法
- spark sql的agg函数,作用:在整体DataFrame不分组聚合
- java泛型中<;?>;和<;T>;区别
- /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
- [转]bigbluebutton中文社区 / 开放API / bbb API
- R绘图 第十篇:绘制文本、注释和主题(ggplot2)
- linux sumba服务器简单配置
热门文章
- kubernetes 部署metricserver
- am335x system upgrade rootfs custom service using systemd script(十七)
- linux系列(十六):which命令
- go安装与goland破解永久版
- Ubuntu 14.04 改变文件或者文件夹的拥有者
- 关于$internalField边界条件【翻译】
- 切换node版本,node-sass安装报错
- what should I use .post vs .ajax?
- Flutter移动电商实战 --(52)购物车_数据模型建立和Provide修改
- 微信小程序 位置定位position详解,相对定位relative,绝对定位absolute相关问题