【发布时间】:2015-03-05 13:59:24
【问题描述】:
我在我的 Vaadin 应用程序中经常使用 setId 进行自动化 UI 测试。出于性能原因,我想在生产模式下删除此 ID。有什么好的方法吗?
【问题讨论】:
标签: html vaadin production-environment vaadin7 test-environments
我在我的 Vaadin 应用程序中经常使用 setId 进行自动化 UI 测试。出于性能原因,我想在生产模式下删除此 ID。有什么好的方法吗?
【问题讨论】:
标签: html vaadin production-environment vaadin7 test-environments
您可以像这样检查您当前是否在 Vaadin 生产模式下运行
VaadinService.getCurrent().getDeploymentConfiguration().isProductionMode();
因此,如果您使用 setId() 方法设置组件 id,您可以仅在不处于生产模式时轻松设置它,例如:
boolean isProductionMode = VaadinService.getCurrent().getDeploymentConfiguration().isProductionMode();
if(!isProductionMode) {
foo.setID(FOO_ID);
}
但我会考虑是否要使用这种方法。您为 Web 测试分配了多少个组件的 id?如果这个数字不是非常高,那么对性能的影响将可以忽略不计,而您的代码将因生产模式检查而变得过于混乱。在许多情况下,代码的可读性和简单性比轻微的性能损失更重要。
或者,您可以使用 xpath 查询重写许多组件选择器(假设您使用的是Vaadin testbench?),这些查询不依赖于组件 ID,而是依赖于一些已经存在的信息 - 例如使用 @987654322 时的“位置”属性@、css 类、在父容器中的位置等
【讨论】: