Тема: Допоможіть придумати де зберігати DOM шлях для Selenium

Потрібно зробити програму для тестування сайту. Проблема в тому що сайт має дуже багато сторінок які не мають загальної структури (тобто унікальні), потрібно зберегти десь DOM (Xpath) шляхи до всіх елементів сайту. В процесі модернізації/розробки сайту, можу бути змінені назви елементів (наприклад ID для кнопки з "button1" перейменують на "button_action"), не хотілося б кожного разу перезбирати програму, тому я вирішив шляхи зберігати у якийсь файл.

Мені здається JSON файл, найкращий формат для цього завдання.

Я придумав таку структуру JSON файл:

Main
-[Назва сторінки 1]
--[Назва елементу 1]
--[Назва елементу 2]
--[Назва елементу Н]
-[Назва сторінки 2]
-[Назва сторінки Н]

Приклад

Main
-Login
--xp_login
--xp_password
--xp_login_button
{
  "Main": {
    "Login": [
      {
        "Name": "xp_login",
        "Xpath": "//*[@id=\"email\"]",
        "Description": ""
      },
      {
        "Name": "xp_password",
        "Xpath": "//*[@id=\"pass\"]",
        "Description": ""
      },
      {
        "Name": "xp_login_button",
        "Xpath": "//*[@name=\"login\"]",
        "Description": ""
      }
    ],
    "Mail": [

    ],
    "Navigate": [

    ],
    "Like": [

    ]
  }
}

Але виникла проблема при серіалізації, оскільки потрібно буде кожний раз додавати нове поле до класу, коли я буду описувати нову сторінку для тестування

public class Main
{
    public List<Elem> Login{ get; set; }
    public List<Elem> Mail{ get; set; }
    public List<Elem> Navigate{ get; set; }
    public List<Elem> Like { get; set; }
...
}

public class Elem
{
public string Name{ get; set; }
public string Xpath{ get; set; }
public string Description{ get; set; }
}

Питання: Підкажіть найкращий спосіб на вашу думку, як легко можна буде зберегти шлях до елементу у форматі Xpath, і потім його дістати по назві сторінки + елементу ( Наприклад так GetElem(pageName: "Login", elemPath: "xp_login") ) ?