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