t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как лучше? `$(By.Id("Identificator"))` или `$("#Identificator")`

Теги: #<Tag:0x00007f07fe833dc8> #<Tag:0x00007f07fe833cb0> #<Tag:0x00007f07fe833b70>

Вопрос заключается в том, чтобы определить оптимальный вариант определения элементов при помощи Selenide. Если ли необходимость импортировать org.openqa.selenium.By.

Какой вариант лучше?

Вариант 1:

private static final String FIELD_ID = "Text_Id";

public void pressField(){
    $(By.id(FIELD_ID)).click();
}

Вариант 2:

private static final String FIELD_ID = "#Text_Id";

public void pressField(){
    $(FIELD_ID).click();
}

Второй, конечно же, ибо короче.

Тоже так думаю, но сомнения из-за представления второго варианта в документации Selenide https://ru.selenide.org/documentation.html

Подозреваю, что может быть правильным использовании By, если оно возможно.

Оба варианта работают одинаково, делайте как вам нравится.
Лично я за короткие варианты типа $("#Test_Id").
Но если выносите в поле класса, то возможно, лучше, чтобы это поле было типа By - не для селенида, а для вас: чтобы вы случайно эту строку не использовали в каком-нибудь другом методе. А селениду всё равно.

P.S. В документации селенида используется пример By.name("q"), потому что для него нет короткого аналога без By. Разве что $("[name=q]"), но это не особо коротко.

2 Симпатий