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'), 通过textContentinnerTextinnerHTML等属性获 取。(划重点)

    • 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 也不支持谷歌呀!

最新文章

  1. UVA1625Color Lenth(DP+LCS变形 未AC)
  2. ubuntu 14.04 ns2.35 ***buffer overflow detected **: ns terminated解决办法
  3. SQL基础之数据库快照
  4. 数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
  5. HBase with MapReduce (Only Read)
  6. window下使用vnc远程登录阿里云ECS/ubuntu图形界面
  7. ls -F一种非常有用的ls格式
  8. 用VMware安装虚拟系统时出现Invalid system disk,Replace the disk and then press any key
  9. BZOJ2310 : ParkII
  10. Groupon面经Prepare: Max Cycle Length
  11. 线程间操作无效 progressBar2线程不能被访问
  12. css控制table的td宽度
  13. 【20190405】JavaScript-正则式匹配与替换结果解析
  14. 出现Failed to get convolution algorithm的解决方法
  15. spark sql的agg函数,作用:在整体DataFrame不分组聚合
  16. java泛型中&lt;?&gt;和&lt;T&gt;区别
  17. /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  18. [转]bigbluebutton中文社区 / 开放API / bbb API
  19. R绘图 第十篇:绘制文本、注释和主题(ggplot2)
  20. linux sumba服务器简单配置

热门文章

  1. kubernetes 部署metricserver
  2. am335x system upgrade rootfs custom service using systemd script(十七)
  3. linux系列(十六):which命令
  4. go安装与goland破解永久版
  5. Ubuntu 14.04 改变文件或者文件夹的拥有者
  6. 关于$internalField边界条件【翻译】
  7. 切换node版本,node-sass安装报错
  8. what should I use .post vs .ajax?
  9. Flutter移动电商实战 --(52)购物车_数据模型建立和Provide修改
  10. 微信小程序 位置定位position详解,相对定位relative,绝对定位absolute相关问题