Проблема заключается в следующем: есть блок, на блоке кнопка, по нажатию на которую, появляется 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
В коде нету 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"). Поменял просто кавычки и все заработало. Ажстыдно)