Как вставить имя переменной в локатор ??

selenium
webdriver
Теги: #<Tag:0x00007f7b6d5a8e90> #<Tag:0x00007f7b6d5a8cb0>

(Vatslau) #21

это копи-паста - не правильный код
покажите пример где это может быть оправдано

локатор напрмер логин кнопки
в педже /модуле - логин - всё одно место где он пределён

дальше он используется хоть в 100 местах как метод сlickBlaBlaBla
отредактировал в одном месте - применил изменения везде…
IntelliJ -> refactoring
может я не правильно понял идею.

public class LoginPage {
  private final static SelenideElement
          loginField = $("#username"),
          passwordField = $("#password"),
          loginBtn = $("#submit-button");
  private String pageUrl = "/libs/cq/core/content/welcome.html";
  private UserModel user;
  
  public LoginPage createUser(String[] credentials) {
    this.user = new UserModel();
    this.user.setLogin(credentials[0]);
    this.user.setPassword(credentials[1]);
    return this;
  }
  
  public LoginPage openPage(String host) {
    this.pageUrl = host + pageUrl;
    open(this.pageUrl);
    return this;
  }
  
  public LoginPage submitForm() {
    loginField.shouldBe(visible).setValue(this.user.getLogin());
    passwordField.shouldBe(visible).setValue(this.user.getPassword());
    loginBtn.shouldBe(visible);
    loginBtn.shouldBe(enabled);
    loginBtn.click();
    return this;
  }