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

java
webdriver
Теги: #<Tag:0x00007fedb7f5fb48> #<Tag:0x00007fedb7f5fa08>

(Levotsky Vadim) #1

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


(Taras) #2

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


(Levotsky Vadim) #3

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


(Сержан Есенбек) #4

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

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


(Levotsky Vadim) #5

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


(Сержан Есенбек) #6

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

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


(Levotsky Vadim) #7

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


(Bolatbek) #8

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


(Bolatbek) #9

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


(Levotsky Vadim) #10

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


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


(Sergey Korol) #11

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


(Bolatbek) #12

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

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

(Levotsky Vadim) #13

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


(Michael Beider) #14

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