我们可以用 Selenium 和黄瓜测试 Vaadin 应用程序吗?

Can we Test a Vaadin application with Selenium and cucumber?

我必须使用 Cucumber 和 Selenium Web 驱动程序(使用 Java 脚本执行器)测试 Vaadin 应用程序。这是测试 vaadin 应用程序的好方法吗?

是的,您可以使用 Selenium 和 Cucumber,但您需要管理您的框架以处理多个 windows 并使用事件触发和事件侦听器 类。

我对 Vaadin 应用程序的理解,其中 UI 是网页中的视口 运行。一个网页实际上可以有多个这样的 UI。这种情况很典型,尤其是对于门户中的 portlet --所以你的框架或测试应该处理多个windows。 -- 需要处理 Vaadin Session。 Vaadin 遵循 event-driven 编程范例,其中事件和处理事件的侦听器是处理应用程序中用户交互的基础

您需要对 Selenium 有很好的了解才能使 Vaadin 自动化

我曾经遇到过同样的问题,我使用 Selenium IDE 来识别 vaadin 中每个元素的 XPATH,然后像这样使用它:

driver.findElement(By.xpath("//div[@id='thalamusboapp-218829419']/div/div[2]/div[3]/div/div/div[2]/div/span/span") );

可以仅使用 Selenium 测试 Vaadin 应用程序。但是,使用 Vaadin TestbenchVaadin 可能会更好。 Testbench 基于 Selenium,但提供了与 Vaadin 更好的集成。主要优点是: 1. 无需在操作之间提供手动延迟,因为它等待 UI 个组件加载。 2. 它为select Vaadin 组件提供额外的selectOR。 3. 可以提供测试失败的截图。

唯一的缺点是 Testbench 是一项商业功能,需要您付费。

pros/cons更详细的分析见:Official Blog Entry

有一个 Github repository 显示了测试台和普通 Selenium 的基本设置。