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

Как написать в разные поля(input) разные значения

locators
java
selenium
webdriver
Теги: #<Tag:0x00007f21d57af0c8> #<Tag:0x00007f21d57aef88> #<Tag:0x00007f21d57aee48> #<Tag:0x00007f21d57aed08>

(Дмтрю) #1

Есть много полей(input) для ввода чего-либо. Как написать универсальный метод который будет работать и для одного input и для нескольких.

public List<WebElement> getlist() {
return driver.findElements(By.xpath("//input[contains(@class, “form-control”)]"));
}

public List<WebElement> enterStrings(List<String> strings) {
for (WebElement listS
tring : getlist()) {
listString.sendKeys(strings.get(1));
}
return getlist();
}

(asolntsev) #2

Мой стандартный ответ: используйте Selenide, код будет короче:

public void enterTexts(List<String> texts) {
  for (int I = 0; I < texts.size(); I++) {
    $("input.form-control").val(texts.get(i));
  }
}

(Vasiliy Rakshin) #3

Воу-воу-воу. А разве метод $ сам может спускаться к следующему элементу инпут?
Он же долбить будет всё время один и тот же…
Тогда уж

$$("input.form-control").get(i).val(texts.get(i));

(asolntsev) #4

А, точно, это я забыл индекс дописать:

$("input.form-control", i+1).val(texts.get(i));