Selenium+Python нахожу элемент, input, но не могу ввести туда значение. Может кто сталкивался с аналогичной проблемой?

Проблема заключается в следующем: есть блок, на блоке кнопка, по нажатию на которую, появляется INPUT, который в свою очередь принимает только целые значения (int).
Получилось найти данное поле по XPath, но не получается ввести данные.

Код
Selenium+Python
self.driver.find_element(By.CLASS_NAME, “btn-primary”).click()
self.driver.find_element(By.ID, “qcn-buy”).click()
self.driver.find_element(By.ID, “qcn-buy”).send_keys(“10”)
Часть кода HTML

Логи и ошибка вот такая …
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot focus element
Примечание: self.driver.find_element(By.ID, “qcn-buy”).click() отрабатывает, а вот ввод 10 - нет.
Версии ОС и софта следующие …
Ubuntu 16.04 Chrome 66

а попробуйте то же самое, но с помощью actions

попробуй поставить ожидание элемента

1 лайк

Добрый день. Спасибо за наводку, сейчас погуглю. (я с этих выходных только начал осваивать автоматизацию Python+Selenium).

Добрый день. А с какой целью ставить ожидание элемента? Find and click по элементу отрабатывает, а ввод значений - нет.

а по этому id у вас только 1 элемент находится?

В коде нету ID элемента, а в XPath - **//*[@id="qcn-buy"]/form/div/input** - есть, я по нему и искал. Тесты запускаю на https://crossbrowsertesting.com через готовые Api. Там есть возможность онлайн просмотра видео теста, на котором видно, как код отрабатывает (вход в учетную запись, нахождение элемента, нахождение кнопки и клика по ней, нахождение INPUT и клика по нему и на этом все.)

Так вы же ищите элемент по id, а потом сами скидываете xpath по которому вы не ищите, ищите элемент по вашему xpath //*[@id=“qcn-buy”]/form/div/input, а не по id “qcn-buy”.

Я думаю тут ошибка не “путях”
self.driver.find_element(By.ID, “qcn-buy”).click() - работает, находит и кликает в поле
self.driver.find_element(By.ID, “qcn-buy”).send_keys(“10”) закоментили строку
Раскоментировали
self.driver.find_element(By.ID, “qcn-buy”).click()
self.driver.find_element(By.ID, “qcn-buy”).send_keys(“10”) - Message: unknown error: cannot focus element

А вы понимаете разницу между поиском по ID и поиском по XPATH в конкретно в вашем случае? В вашем случае вы пытаетесь ввести цифры не в input, а вообще непонятно куда. Да у вас находит элемент по id но это не тот элемент который вам нужен, нужный элемент находится по xpath который вы написали выше. Возмите и почитайте как ищутся элементы, что такое DOM, и какие методы есть для поиска элементов на странице и разница между ними.

Спасибо за конструктивную критику))) нашел решение!
self.driver.find_element_by_xpath("//*[@id=‘qcn-buy’]/form/div/input").send_keys(“100”)

Когда я в прошлых попытках пытался ввести значения по XPath PyCharm ругался на то, что ("//*[@id=“qcn-buy”]/form/div/input"). Поменял просто кавычки и все заработало. Ажстыдно)