当前位置:  开发笔记 > 编程语言 > 正文

element.getText()方法在java selenium中不起作用

如何解决《element.getText()方法在javaselenium中不起作用》经验,为你挑选了1个好方法。



1> Mathias Müll..:

这个问题已有很多答案,但没有一个真正解释这个问题.首先,在转向真正的问题之前,让我们先解开关于自闭合元素的初步困惑:不,这不是一个像元素一样的问题


没有标签.没有必要指出它的结束位置,因为/>已经告诉您该元素不包含任何内容并在此时关闭.


那么我们只看一下你展示的文档的片段:

Project Updated

一个XPath表达式(请注意,很可能你不需要.在表达式的最开头):

//*[@id='project-update-success-information']

将返回内部div元素及其包含的所有内容.它包含的内容完全按以下顺序排列:

仅限空格的文本节点

一个自闭span元素,没有属性以外的内容

包含"Project Updated"的文本节点

因此,当您选择内部div和使用时.getText(),结果中最终会有2个文本节点,这一点都不足为奇.获取元素的文本内容的另一种方法是text()在XPath表达式中使用:

//*[@id='project-update-success-information']/text()

将返回(单个元素分隔--------):

[whitespace-only text node]
-----------------------
Project Updated

解决方案是

    用于getText()检索所有文本节点,然后排除仅包含空格或节点的节点

    使用直接定位文本节点的XPath表达式,并排除仅包含空格的表达式.这样做的标准方法是[normalize-space()]:

    //*[@id='project-update-success-information']/text()[normalize-space()]


请注意,通常,不能保证元素的文本内容将位于单个文本节点中.很可能您有时会遇到HTML或XML,其中元素有多个文本节点,所有这些节点都包含非空白字符,例如:

Project Updated

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有