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

标签 selenium geb

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

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

testObject {$("#test")}

我试过使用 isDisplayed()

boolean hidden =  testObject.isDisplayed()
assert !hidden

但我一直收到错误提示

geb.error.RequiredPageContentNotPresent: The required page content geb.navigator.EmptyNavigator' is not present

报错信息就是我要验证的。该对象不存在,我需要验证它是否属实并通过测试。

最佳答案

您想为您的内容元素使用必需的选项。

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

testObject(required: false, wait: 2) { $("#test") }

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

given:
def page = to MyPage

expect:
page.testObject.empty

关于selenium - 使用 GEB 断言元素不存在于 dom 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49058093/

相关文章:

r - 在不更改页面大小/分辨率的情况下使用 RSelenium 缩小网站

python - Node.js 使用 chrome-remote-interface 进行抓取

groovy - 页面事件后如何使用Geb检查元素属性值

gradle - 如何使用不同的参数多次运行 Spock 规范?

groovy - GEB:禁用 waitFor block 中的隐式断言

python - 如何使用 Selenium 和 Python 从通过 xpath 找到的 webdriver 元素中提取文本

javascript - 在 Selenium webdriver ruby​​ 脚本中获取元素值

java - 为什么我改进的 Selenium IDE 脚本在 Selenium WebDriver 执行中表现不同?

groovy - Geb-core 3.2 与 groovy 2.5.8 冲突