我是Geb的新手。我试图获取html元素的文本。 element.text()
有时会返回正确的值,有时会返回空值。 element.@text
返回预期值。
有人可以解释这种行为吗?
答案 0 :(得分:1)
text()用于标记主体,@ text返回文本属性的值
答案 1 :(得分:0)
element.@text
直接访问text属性,而text()
调用一个函数来访问文本,可能除了获取属性之外还要做一些事情。
修改强>
根据documentation,text()
方法返回first
上下文元素的文本内容,这可能是它有时无法返回您期望的值的原因(例如,如果您正在寻找第二个上下文元素的文本内容)。
编辑2
对于NonEmptyNavigator,text()方法的实现如下:
@Override
String text() {
firstElement().text
}
对于EmptyNavigator,返回null
@Override
String text() { null }
编辑3
由于两个Navigator实现都没有text属性,因此调用propertyMissing()
方法。