使用 GEB 断言元素不存在于 dom 中

Tes*_*tor 1 selenium geb

我正在尝试根据登录者验证页面。某些用户具有更高的安全性,并且会在页面上看到更多项目。当安全性较低的用户登录时,他们将看不到选项。我需要验证页面上不存在这些选项。

我有一个基于用户安全显示的选项的页面对象

testObject {$("#test")}
Run Code Online (Sandbox Code Playgroud)

我试过使用 isDisplayed()

boolean hidden =  testObject.isDisplayed()
assert !hidden
Run Code Online (Sandbox Code Playgroud)

但我不断收到一个错误,说

geb.error.RequiredPageContentNotPresent:所需的页面内容geb.navigator.EmptyNavigator'不存在

错误消息是我想要验证的。该对象不存在,我需要验证它是否正确并通过测试。

kri*_*aex 5

您想required为您的内容元素使用该选项。

如果页面是动态的,也许你还想等一会儿让 Geb 决定元素为空。检查元素不存在可能会很棘手,因为它们可能会通过,因为动态元素尚未完成加载。

testObject(required: false, wait: 2) { $("#test") }
Run Code Online (Sandbox Code Playgroud)

在您的 Geb 测试中,您只需执行此操作(不需要辅助方法):

given:
def page = to MyPage

expect:
page.testObject.empty
Run Code Online (Sandbox Code Playgroud)