2017-01-13 4 views
-1

Я хочу использовать Capybara для ввода текста в ячейку ноутбука Jupyter. Нажатие на элемент и использование «send_keys» не работает, хотя курсор заканчивается в нужном месте: find(".input").click.send_keys("hello")Capybara, Selenium, Jupyter Notebook: ячейка кода заполнения

Есть ли способ имитировать нажатие клавиш без выбора элемента? find("body").send_keys("hello") также не вырабатывает текст

Редактировать: Я узнал, что Jupyter Notebook использует CodeMirror. CodeMirror каким-то образом использует скрытое поле <textarea>, так что это объясняет, почему Selenium отказался найти вход.

Мой текущий обходной путь, чтобы найти первый редактор CodeMirror и использовать функцию setValue на нем: execute_script("var editor = $('.CodeMirror')[0].CodeMirror; editor.setValue('this is the input')")

+0

Ключевые события должны быть отправлены к некоторому элементу (этот элемент может быть элементом тела, если он нужен). Вам нужно щелкнуть элемент, прежде чем вводить текст? Можете ли вы показать соответствующий HTML? –

ответ

0

Я избегал обходной путь с помощью действий строитель Selenium,. Найти нужный элемент и получить его родное представление Селен:

el_native = first('.input').native

Затем использовать построитель действие нажать на элемент и отправить ключи:

page.driver.browser.action.click(el_native).send_keys("hello").perform

 Смежные вопросы

  • Нет связанных вопросов^_^