А если например использую для интеграции Jenkins, я могу просто в интерфейсе зайти в файлик проперти и изменить локатор, не влезая в код
Кстати, рефлексию вашу, никак не могу понять как применить в данной ситуации
Вот эта экономия “могу изменить проперти, не меняя код” - это конечно хорошо, когда относится к каким-то масштабным проектам, которые собираются по 20 минут, потом деплоятся ещё 20 минут (образно).
А ваш проект с тестами собирается настолько ничтожно малое количество времени, что намного проще это делать в коде, имхо, чем городить лишнюю логику, к тому же ваш файл проперти сможет кто угодно менять без PR и истории.
Я уже забыл, что именно вы хотите. А перечитав не очень понял.
Можете более детально написать, что же вы всё-таки хотите, и зачем вам в данном контексте вообще какие-то переменные?
Смотрите, есть drop down , в нем список значений.
Мне нужно выбрать некоторые из этих значений и кликнуть в разных тестах. Раньше, у меня было 6 разных локаторов, и я писал к примеру //li[contains(text(),’films’)] и далле click . Решил , что лучше создать один метод и юзать только один локатор (заменить, название films на строку %s). Дальше вызываю этот метод, и просто пишу значение которое мне нужно в данный момент.
Если в методе написать так: String listValue = String.format("//li[contains(text(),'%s')]", value);, то все отлично, а я хочу локатор свой вытянуть с помощью objectMap:
Не понимаю, в чем плохие проперти? Как по мне, очень даже удобно. Любой пользователь не разбираясь в тестах, может изменить локатор в случае необходимости.
Ну смотрите, если к примеру есть локатор, который используется в разных тестах (например 10 раз). Если вдруг dev хочет изменить?Придется править в 10 местах данный локатор, вместо того, чтобы зайти в проперти и измененить 1 локатор.
тут то согласен, сначала надо зайти в метод, а затем с метода в локатор
Для этого есть Page Object, который как раз хранит локатор в одном месте. Так же как методы, которые вы просто используете в тестах.
Вы придумываете велосипед.