Как известно, значения атрибутов аннотаций в Java должны быть константами. Это не очень-то подходит для @FindBy. Например, у меня есть XPATH:
"//table/tbody/tr/td/a[contains(text(), '%username%')]"
,
где сабстринг %username%
я хочу заменять на тот юзернейм, который мне нужен, после чего подставлять уже готовый XPATH в @FindBy(xpath = ...)
. Другими словами:
String usersPageLinkUsername = Locators.usersPageLinkUsernameTmpl.replaceAll("%username%", "user123");
@FindBy(xpath = usersPageLinkUsername)
public WebElement linkUser;
работать не будет т.к. usersPageLinkUsername
уже не константа. Как поступить в этом случае?
P.S. Юзкейс: создается юзер с юзернеймом, сгенерированным рандомно, после чего этого юзера нужно удалить (чтоб удалить юзера нужно сначала зайти в его профиль, кликнув на его юзернейме в списке юзеров).