Ответ 1
Переключение на хром, как описано здесь решило мою проблему.
Очевидно, проблема связана с ошибкой в драйвере firefox.
Тем не менее, я считаю, что это правильный вопрос для firefox.
У меня есть проблема с использованием capybara для тестирования формы tinymce. Я использую tinymce-rails и имеет 7 редакторов в моей форме. Также я использую плагин asciimath с тинимом.
Все работает отлично, но я не могу написать тесты для заполнения редактора tinymce.
Вот как выглядит мой код определения шага, очень похожий на то, что описано здесь:
within_frame("content_ifr") do
editor = page.find_by_id('tinymce')
editor.native.send_keys 'test'
end
Проблема заключается в том, что я запускаю следующее:
editor.native.clear # works, clear the editor area, I'm testing this with pry
editor.native.send_keys :tab # works, moves focus to next input
editor.native.send_keys 'test' # returns "", nothing happens, nothing in editor
Итак clear
и send_keys :tab
работают как ожидалось. Но я не могу отправить ничью. send_keys
функция всегда возвращает пустую строку, и ничего не происходит, когда я тестирую с помощью pry.
Что здесь происходит? и как я могу отлаживать/исследовать проблему?
Спасибо.
Переключение на хром, как описано здесь решило мою проблему.
Очевидно, проблема связана с ошибкой в драйвере firefox.
Тем не менее, я считаю, что это правильный вопрос для firefox.
Я знаю, что это старый вопрос, но я только нашел его, пытаясь решить и эту проблему.
Хотя в первоначальном вопросе говорилось, что на одной странице у него есть 7 оттенков, я думаю, что мое решение может сработать и для него, но я знаю, что оно будет работать, если есть одно совпадение, как было в моем случае.
В моей спецификации запроса я использовал это:
page.execute_script('$(tinymce.editors[0].setContent("my content here"))')
page.execute_script
с page.execute_script
запустить функцию jQuery. Затем он находит первый редактор tincymce и устанавливает содержимое.
Работал как шарм для меня. Я думаю, что если их несколько, это можно назвать по их положению.
Попробуйте переключиться на iframe, содержащий входной файл tinymce textarea, а не send_keys:
# +session+ is an instance of Capybara::Session class
browser = session.driver.browser
browser.switch_to.frame(iframe_id)
editor.native.send_keys(text)
browser.switch_to.default_content
Я была такая же проблема. После дня борьбы мои тесты наконец прошли.
Код, который я использую:
within_frame("producto_condiciones_ifr") do
editor = page.find_by_id('tinymce')
editor.native.send_keys 'filling text'
end
Первая строка - это метод капибары. Переданный параметр является идентификатором iframe.
Строка № 2 является обязательным.
В строке № 3 идет текст, который вы хотите поместить в TinyMCE