капибара: заполните значение поля формы завершающей клавишей ввода - PullRequest
7 голосов
/ 23 октября 2011

Я тестирую ввод считывателя штрих-кода ... он ведет себя как клавиатура, но оканчивает каждый штрих-код символом ввода.Мой javascript обнаруживает ключ ввода и отвечает (приложение backbone.js).

Как я могу "заполнить" поле формы строкой, имеющей завершающий ключ ввода?

Мой тестстек огурец / капибара / капибара-webkit.

Ответы [ 2 ]

8 голосов
/ 07 августа 2012

На самом деле, кажется, что вы можете просто отправить \ n в собственный метод набора Капибары и добиться того же эффекта (более гибким, независимым от драйвера способом).

Так что вмой код, это в настоящее время работает, чтобы вызвать событие отправки формы (обрабатывается JS):

  field = find("form input[type=text]")
  field.set "my comment\n"

(Обратите внимание, что, как объясняет автор запроса на получение здесь , это толькоработает, если вы привязываетесь к конкретному событию keydown, а не если вы привязываетесь к отправке формы, которая должна возникнуть в результате.)

4 голосов
/ 26 октября 2011

Попробуйте использовать Capybara::Driver::Selenium в качестве драйвера страницы для этого конкретного сценария.Если вы это сделаете, вы можете сделать такие вещи:

place = page.find_by_id('tinymce').native
place.send_keys("I rule!")
place.send_key "\xEE\x80\x83"
...