В моих попытках найти изящный способ проверки того, какие кнопки видны пользователю, основываясь на его роли и разрешениях, я столкнулся с проблемой. Я использую шаблон проектирования Page Object Model с Selen для тестирования веб-сайта. Несколько страниц имеют различный набор кнопок, которые должны быть видимы или не видны пользователю в соответствии с его ролью.
Я сохраняю Dictionary<Permission,IWebElement>
и инициализирую его в конструкторе страницы (класс, представляющий определенную страницу на сайте).
Все веб-элементы определены следующим образом:
private IWebElement btn_openShop => driver.ById("open_shop");
(ById эквивалентно FindsElement(By.Id("open_shop")
)
Проблема в том, что, если кнопка не существует, при добавлении ее в Словарь создается исключение.
Примечание: перемещение инициализации словаря не поможет, так как я проверяю оба случая (один, в котором пользователь должен видеть кнопку, а другой - нет).