Использование
driver.findElement (By.className ( "щ-DatePicker год"));
вместо
driver.findElements (By.className ( "щ-DatePicker год"));
Когда вы используете driver.findElements (By.className ("ui-datepicker-year")), вы сохраняете возвращаемые элементы в списке (я ожидаю, что есть 2 или более элементов с тем же className, что и "ui- DatePicker год ").
Итак, если это так, то вы должны заметить, что конструктор «Select» класса selenium принимает «WebElement» в качестве параметра, который может быть первым или любым элементом, хранящимся в списке.
Тогда ваш код должен быть написан как -
List<WebElement> NomDOBYear = driver.findElements(By.className("ui-datepicker-
year"));
Select selectYear= new Select(NomDOBYear.get(0));//first element of the list
selectYear.selectByVisibleText("1991");
WebElement NomDOBMonth = driver.findElement(By.className("ui-
datepicker-month"));// you got the class name wrong here
Select selectMonth= new Select(NomDOBMonth);
selectMonth.selectByVisibleText("Nov");
В противном случае, если во всем DOM есть только 1 элемент с className "ui-datepicker-year" или "ui-datepicker-month", тогда ваш код должен быть записан как -
WebElement NomDOBYear = driver.findElement(By.className("ui-datepicker-year"));
Select selectYear= new Select(NomDOBYear);
selectYear.selectByVisibleText("1991");
WebElement NomDOBMonth = driver.findElement(By.className("ui-datepicker-month"));
Select selectMonth= new Select(NomDOBMonth);
selectMonth.selectByVisibleText("Nov");
Я бы по-прежнему рекомендовал использовать XPath для поиска элементов.