Тема: Допоможіть придумати де зберігати 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") ) ?