在生产模式下从Vaadin组件中删除元素ID

问题描述 投票:0回答:1

我在Vaadin应用程序中setId使用setId进行自动化UI测试。 出于性能原因,我想在生产模式下删除此ID。 有什么好办法吗?

html vaadin production-environment vaadin7 test-environments
1个回答
1
投票

您可以像这样检查您当前是否在Vaadin生产模式下运行

VaadinService.getCurrent().getDeploymentConfiguration().isProductionMode();

因此,如果要使用setId()方法设置组件ID,则仅在不处于生产模式下时才可以轻松设置它,例如:

    boolean isProductionMode = VaadinService.getCurrent().getDeploymentConfiguration().isProductionMode();

    if(!isProductionMode) {
        foo.setID(FOO_ID);
    }

但是我会考虑是否完全使用这种方法。 您为网络测试分配了多少个ID? 如果数量不是非常高,那么性能影响可以忽略不计,而生产模式检查则会使您的代码过于混乱。 在许多情况下,代码的可读性和简单性比对性能的轻微影响更为重要。

另外,您可以使用xpath查询来重写许多组件选择器(假设您使用的是Vaadin testbench吗?),这些查询不依赖于组件ID,而是依赖于一些已经存在的信息,例如使用自定义布局 ,css类,在父容器等中的位置

© www.soinside.com 2019 - 2024. All rights reserved.