Не работает Select - Element Not Interactable Exception.

Всем привет.
Пытаюсь работать с Select, но не выходит, вылетает исключение ElementNotInteractableException.
Есть идеи по какой причине?
Скрин кода сайта прилагаю.

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

имплиситли вэйт есть, а если эксплисит, то что ждать?
После задгрузки страницы сетаю филды name + last name - с ними всё окей.
Также sleep 5сек не помог ничего.

попробовал так ?

$("#gender0").waitUntil(visible, 15000).selectOptionByValue(“M”);

Это Селениде? я обычный вебдрайвер юзаю.

извини я не пиши на чистом selenuim
но попробуй так

Select dropdown = new Select(driver.findElement(By.id(gender0)));
dropdown.selectByValue(“M”);

да норм, пробовал разные методы, не получается.
меня напрягает в атрибут aria-hidden=“true”.
может он не даёт нормально взаимодествовать с Select.
Как его обойти?

Смутное ощущение, что вы работаете не с тем элементом.
Тот селект на скрине - скорее всего скрыт. А визуальный селект возможно сделан div’вами.

Пробуйте стиль поменять-вместо -999px напишите 0 и убрать стиль, который вы выше написали. Поймёте, о чём я.

Да простите меня за мою неграмотность, новичёк я в этом деле.
Как и где я должен поменять стиль?

если инспектировать элемент выпадающего списка, то вот такая картина.
получается что с как таковым селектом здесь нельзя работать? надо искать этот список?

Похоже на Select2. Такими элементами проще управлять при помощи нативных API.

1 лайк

Так и думал.
Вы смотрите на select, а он на самом деле скрыт, а над ним сделана обертка в виде этих ваших div / ul / li элементов.
Варианты:

  • сделать настоящий select видимым (изменив этому элементу стили - например с помощью execute_script), дальше понятно.;
  • работать с элементами, которые вы показали на скрине (с этими div/ul/li) как обычно вы привыкли: нашли, кликнули и блаблабла.
    Как вам удобно.
1 лайк

Спасибо!
Сделал!
Сделал Селект видимым - изменил стили на те, что вы указали выше с помощью JSExecutor.

this element may have dynamic id. (gender0, gender1,…)try to select an element using css [id*=gender].