selenium: выбрать автозаполнение, которое перекрыто другим текстом
а это его автозаполнение, когда начинаешь вводить:
это сам элемент:
input id="" type="text" name="" placeholder="Выберите пользователя" autocomplete="off" class="sed-ui-input__input" style="padding-right: 10px;"
это его XPATH (он работает, его находит):
"//div[@class='sed-ui-input sed-ui-input--design-type-newest sed-ui-input--sm sed-ui-input--primary']/input[@class='sed-ui-input__input']
раньше, когда не было надписи "Выберите пользователя" и поле было пустым, тогда работал этот код:
whom = driver.find_element(By.ID, 'inp_g_su_r_0')
whom.send_keys('Перехов Д.Ю.')
time.sleep(1)
whom.send_keys(Keys.ENTER)
time.sleep(1)
этот код вбивал "Перехов Д.Ю." в поле, и первая ссылка выделенная была именно та, которая нужно, оставалось просто кликнуть Enter, и все работало. Теперь не получается это делать.
я попробовал такой код:
# Использование JavaScript для ввода текста
script = 'arguments[0].value="Перехов Д.Ю.";'
element = driver.find_element(By.XPATH, "//tr[@class='tr_b recipient-list-table-row']//td[@class='titles']//following-sibling::td//input[@class='sed-ui-input__input']")
driver.execute_script(script, element)
time.sleep(1)
Но он только заполняет в поле "Перехов Д.Ю.", а толку нет, не выпадают вниз из браузера варианты и, получается, их нельзя выбрать. Я уже пробовал добавлять это(типа на этот элемент нажать кнопку Enter, но вообще ничего не поменялось):
# Нажатие клавиши Enter с использованием JavaScript
script_enter = 'arguments[0].dispatchEvent(new KeyboardEvent("keydown", {bubbles: true, cancelable: true, keyCode: 13}));'
driver.execute_script(script_enter, element)
Так же переделывал первоначальный код с обновленным селектором: он просто выдает ошибку из-за перекрывающего текста "Выберите пользователя":
whom = driver.find_element(By.XPATH, "//tr[@class='tr_b recipient-list-table-row']//td[@class='titles']//following-sibling::td//input[@class='sed-ui-input__input']")
whom.send_keys('Перехов Д.Ю.')
time.sleep(1)
whom.send_keys(Keys.ENTER)
time.sleep(1)
Как обойти эту проблему с перекрывающим текстом?