Как отправить текст в окно редактора CKEditor WYSIWYG с помощью Watir-WebDriver - PullRequest
3 голосов
/ 11 августа 2011

У меня есть скрипт watir-webdriver, который устанавливает поле CKEditor с помощью приведенного ниже кода, но это работает только с Firefox на Mac OSX, когда я фокусируюсь на экране. Например, если я сфокусируюсь и позволю этому сценарию работать в фоновом режиме, текст не будет введен (но исключение или ошибка не возникнут).

Кто-нибудь знает, как всегда убедиться, что он установлен?

require "watir-webdriver"
b = Watir::Browser.new :firefox
b.goto "http://ckeditor.com/demo"
b.frame(:title => 'Rich text editor, editor1, press ALT 0 for help.').send_keys "hello world"

(Google Chrome нормально работает на Mac OSX, но я бы тоже хотел запустить свои тесты на Firefox)

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Благодаря указателю Яри, я в итоге выполнил javascript для надежного обновления поля:

b.execute_script "CKEDITOR.instances.editor1.setData( 'hello' );"
1 голос
/ 11 августа 2011

Firefox не отправляет события фокуса / размытия, если он не находится на переднем плане.Самое надежное решение - всегда обеспечивать отдельное отображение (или виртуальную машину) для каждого экземпляра браузера.В противном случае вы можете использовать значение редактора, используя Browser # execute_script.

0 голосов
/ 11 августа 2011

Попробуйте:

b.frame(:title => 'Rich text editor, editor1, press ALT 0 for help.').body.send_keys "hello world"

у меня это работает на OSX и FF3.6

...