0

Я использую setId для автоматизированных тестов пользовательского интерфейса в приложении Vaadin. По соображениям производительности я хотел бы удалить этот идентификатор в режиме производства. Есть ли хороший способ сделать это?Удалить элементы из компонентов Vaadin в рабочем режиме

ответ

1

Вы можете проверить, если вы в настоящее время работает в режиме производства Vaadin как этот

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

Так что, если вы настраиваете ваши компоненты идентификатор с setId() метод, вы можете легко установить его только тогда, когда не в рабочем режиме , например:

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

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

Но я бы подумал, использовать ли этот подход вообще. На сколько компонентов вы назначаете идентификатор для веб-тестов? Если число не является чрезвычайно высоким, удар производительности будет незначительным, в то время как ваш код будет слишком сильно загроможден с проверками производственного режима. Во многих случаях читаемость кода и простота важнее, чем незначительный удар производительности.

В качестве альтернативы, вы можете переписать многие из ваших компонентов селекторов (если вы используете Vaadin testbench?) С помощью запросов XPath, которые не зависят от компонентов идентификаторов, а на некоторой уже имеющуюся информации, а не - как «местоположение» атрибут при использовании custom layouts, CSS класс, положение в родительском контейнере и т. д.

+0

Спасибо, проверка хорошая идея, я мог бы использовать для этого помощник. Я подумаю о твоих приключениях. И нет, я использую Selenium, и из-за редизайна кажется более надежным использовать ID. – riddy

+0

Вы правы, что использование идентификаторов более толерантно. Если вы используете Selenium, вы можете попробовать попробовать Vaadin Testbench. Это просто завернутый селен, приспособленный для Ваадина с некоторыми дополнительными функциями. Однако, это не бесплатно, вам нужно купить лицензию или получить vaadin pro аккаунт. –

 Смежные вопросы

  • Нет связанных вопросов^_^