【问题标题】:Finding a Dialog from a context using TestBench使用 TestBench 从上下文中查找对话框
【发布时间】:2021-06-23 07:19:45
【问题描述】:

我正在寻找一种从子上下文中找到DialogElement 的方法。从“根”上下文中找到它工作正常,但我正在构建一个页面组件进行测试,当我尝试使用 $(DialogElement.class) 方法找到 DialogElement 时,它会尝试在当前元素的上下文中找到它,但 Dialog 似乎已添加到主/根上下文中,因此它总是失败。有什么建议吗?

更新

我在测试的任何地方都找到了一个可行的解决方案:

DialogElement dialogElement = new ElementQuery<>(DialogElement.class).context(getDriver()).first()

更新 2

设法改进它:

DialogElement dialogElement = $(DialogElement.class).context(getDriver()).first()

如果有人知道更优雅的,请随时发布。

【问题讨论】:

  • 为什么要把寻找对话框放到页面对象上?只需在测试中使用 $(DialogElement)。我们添加了一个方法来获取当前对话框到我们的 UI 测试的基类
  • 因为它在逻辑上属于那个页面对象,我不想为了与对话框交互而破坏其他封装的测试序列。
  • 对话框总是在最前面,所以你没有机会这样做。
  • 我不明白为什么它不应该是可能的
  • 你写道:“它试图在当前元素的上下文中找到它”这就是为什么

标签: vaadin test-bench vaadin-testbench


【解决方案1】:

试试 DialogElement dialogElement = $(DialogElement.class).onPage().first()

onPage() 定义查询应该从页面的根目录开始搜索,实际上是从标签开始。

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多