Передача кода клавиши с событиями keydown и keyup в Watir и FireWatir

Мне нужно автоматизировать взаимодействие с настраиваемым текстовым редактором jQuery в нашем веб-клиенте. Поговорив с нашими разработчиками, мне нужно было только запустить следующие события; keydown, keyup, mousedown, mouseup и вставить.

Так действительно нужен способ передать код ключа с помощью вызовов keydown и keyup fire_event для WATIR и FIREWATIR?

Кому-нибудь удалось это сделать?


person Alastair Montgomery    schedule 21.04.2011    source источник


Ответы (2)


Вы пробовали метод send_keys? Я знаю, что watir-webdriver поддерживает его, и кажется, что он быстро становится предпочтительным способом управления firefox.

person Chuck van der Linden    schedule 22.04.2011
comment
Наконец-то мы установили тестовую машину с веб-драйверами, и это работает с использованием такой команды, как browser.frame (: id, ws-txt-editor) .div (: id, proxy) .send_keys Hello World - person Alastair Montgomery; 10.05.2011
comment
Вут всегда рад слышать, когда мои ответы работают. Спасибо за обновление вопроса. Я думаю, что у меня возникнет соблазн попробовать еще много чего с помощью watir-webdriver. это похоже на будущее, особенно для кроссбраузерной поддержки. - person Chuck van der Linden; 11.05.2011

у меня была похожая потребность давным-давно. Я считаю, что лучше всего

@browser.document.parentWindow.eval(‘javascript’)

Я только что попробовал следующее на какой-то странице с включенным jquery:

$('body').keydown(function(e) {alert(e.keyCode)}); // Assign keydown event to 'body', so it will alert with the key code of any button pressed

var event = jQuery.Event("keydown");
event.keyCode = 50; // Whatever keyCode you need
jQuery("body").trigger(event); // Here you replace 'body' with the element you need

Итак, по сути, вы создаете событие и запускаете его для любого элемента, который вам нужен.

вся картина может выглядеть примерно так:

@browser.document.parentWindow.eval('var event = jQuery.Event("keydown"); event.keyCode = 50; jQuery("#theElementYouNeed").trigger(event)')
person Vlad Khomich    schedule 21.04.2011
comment
Спасибо, я попробую. - person Alastair Montgomery; 21.04.2011
comment
дайте нам знать результаты, я чувствую, что есть другие решения;) - person Vlad Khomich; 21.04.2011