У меня есть этот код, который находит элементы div в DOM, я использовал селен, чтобы найти элементы на странице HTML:
package com.indeni.automation.ui.model.alerts;
import com.indeni.automation.ui.model.PageElement;
import com.indeni.automation.ui.selenium.DriverWrapper;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import java.util.List;
public class FilterBar extends PageElement {
private List<WebElement> edgeDropDownMenus = driver.findElements(By.cssSelector("div.dropdown-menu.left"));
private List<WebElement> middleDropDownMenus = driver.findElements(By.cssSelector("div.combo-menu.left"));
public FilterBar(DriverWrapper driver){
super(driver);
}
public void clickOnIssuesDropDownMenu(){
clickButton(edgeDropDownMenus.get(0));
}
}
А это функция clickButton:
protected void clickButton(WebElement bthElm){
bthElm.click();
printClick(bthElm);
}
Я получаю следующую ошибку:
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
но если я использую следующую строку кода, это работает:
clickButton(driver.findElements(By.cssSelector("div.dropdown-menu.left")).get(0));
Но я хочу использовать первый элегантный способ, но не могу понять, почему я получаю это сообщение об ошибке и как это исправить.