selenium中WebElement.getText()为空解决方法

Posted peachlf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium中WebElement.getText()为空解决方法相关的知识,希望对你有一定的参考价值。

当使用getText()获取一个普通的链接文本时:

html代码  技术分享图片
  1. <href="http://www.baidu.com">baidu</a>  

如果得到的文本只为空,而非我们期望的baidu.那么尝试使用WebElement.isDisplayed()时候,将会得到false的结果.再尝试使用getAttribute("href"),发现能够争取获取href的值.由此可以说明:

  1. WebDriver判定isDisplayed为false的元素,那么getText()将为空
  2. isDisplayed为false的元素,依然可以通过getAttribute()方法获取元素的属性.

{真是很鸡肋的一个检查机制啊}

所以,当getText()为空的时候,可以通过两种方法获取链接的文本

  1. 修改页面当前元素,或者当前元素父元素的CSS,使元素的isDisplayed()值为true.(例如通过((javascriptExecutor)
    // driver).executeScript("document.querySelector(‘cssSelector‘).style.display="inline"");))
  2. 使用getAttribute("innerHTML")获取文本值
  3. 禁用css

由此我们也可以知道,isDisplayed为false,是指那个元素是存在的,只是webdriver认为不见.回到关键问题,webdriver是如何判断一个元素是否displayed,请参照:

http://www.w3.org/TR/webdriver/#determining-visibility

 

事实上,我所要测试的link,在运行的时候并非隐藏而是可见的,运行中获取的CSS display值为block而非none.

原文:https://blog.csdn.net/github_38885296/article/details/79006280?


以上是关于selenium中WebElement.getText()为空解决方法的主要内容,如果未能解决你的问题,请参考以下文章

selenium 怎样获取页面中“验证码”的值?

使用java在Selenium WebDriver(Selenium 2)中向上或向下滚动页面

selenium2中怎么定位div布局的下拉框

selenium中怎么定位百度首页-设置-搜索设置?

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?

selenium中无法定位到元素(点击图片操作)