Geb:文本()与值()

Geb: text() vs value()

只是关于使用 Geb text() 与 value() 的小说明。

根据 Geb 文档:

The value text is treated specially as a match against the node’s text.

对于值():

Calling value() with no arguments will return the String value of the first element in the Navigator.

根据我通过反复试验的理解,text() 可用于 check/set 特定元素中的文本内容,表单元素除外。 value() 用于 check/set 表单元素的内容。

assertThat($("h1").text()).isEqualTo("Geb")      // will work
assertThat($("input").value()).isEqualTo("Geb")  // will work
assertThat($("input").text()).isEqualTo("Geb")   // will not work

这是正确的吗?还是有更大的分化?我在文档中找不到任何实质性描述。

提前致谢!

您不能使用 text() 设置任何内容,它只能 returns 第一个元素的文本内容。它基本上委托给 WebElement.getText().

您引用的文字:

The value text is treated specially as a match against the node’s text.

与使用像`$("div", text: "Lorem ipsum...").

这样的属性选择器有关

是的,value()value(Object) 可用于检索和设置输入的 value/text。