2010-06-29 3 views
16

Мне нужно смоделировать клавиши ввода вкладок в Selenium RC, используя Java API.Имитировать событие нажатия клавиши TAB в Selenium RC

Я делаю это после того, как вошел текст, используя:

selenium.type(input, "mytext"); 

Я пробовал 3 альтернативы, чтобы получить вкладку работы:

selenium.keyPress(input, "\\9"); 

и:

selenium.focus(input); 
selenium.keyPressNative("09"); 

и даже:

selenium.getEval("var evt = window.document.createEvent('KeyboardEvent');evt.initKeyEvent ('keypress', true, true, window,0, 0, 0, 0,0, 9,0);window.document.getElementsByTagName('input')[2].dispatchEvent(evt);") 

Лучшее, что я могу получить это «ушко», чтобы вставить после моего текста, так что я в конечном итоге с этим в поле ввода:

"mytext " 

То, что я на самом деле хочу, чтобы вкладки к следующему элементу управления , Любые подсказки? Благодаря!

(Примечание: я должен использовать вкладку и не может использовать фокус или выбрать выбрать элемент, я хочу идти, по разным причинам, так что никаких предложений вдоль этих линий, пожалуйста)

ответ

4
selenium.keyPressNative(java.awt.event.KeyEvent.VK_TAB + ""); 

I не используйте Java API, но this post из групп google предлагает, что это ваше решение. Я не могу себе представить, что «9» отличается от «09» в вашем вопросе, но попробовать?

+0

09 или 9, не имеет значения. Я боюсь. – Joel

+0

Что произойдет, если вы сначала не сфокусируетесь? то естьпросто вставьте вкладку в форму, а затем введите что-то в конце (я не говорю, что это решит вашу проблему, просто любопытно) – Ryley

+1

Я счел необходимым сосредоточиться, а затем вкладку, чтобы вызвать размытие. – Upperstage

2

Попробуйте официальный TAB символ: \t или \u0009

+1

нет, попробовал это уже – Joel

+1

@Joel: Пожалуйста, уточните вопрос, чтобы упомянуть об этом. Я не вижу '\ t' где-нибудь там. –

1

Некоторые функции могут использоваться ONBLUR. Это вызовет функцию, когда поле потеряет ключевой фокус. здесь мы можем использовать fireEvent с "размытостью" или командой "фокус" следующим образом: команды: fireEvent цель: ID = your_field_identification значения: размытие

Ссылка: http://qaselenium.blogspot.com/2011/01/how-to-triger-tab-key-in-selenium.html

1

ответ импровизировать Ryley, мы можем использовать

selenium.keyDownNative(java.awt.event.KeyEvent.VK_TAB + ""); 
selenium.keyUpNative(java.awt.event.KeyEvent.VK_TAB + ""); 

Я пробовал этот метод для VK_CONTROL в IE, и он работал хорошо.

0

Использование typeKeys():

Цитируя выше ссылке:

В отличие от простой команды «типа», который заставляет указанное значение на страницу напрямую, эта команда может или не может иметь никакого видимого эффекта, даже в случаях, когда клавиши ввода обычно имеют видимый эффект. Например, если вы используете «typeKeys» в элементе формы, вы можете увидеть или не увидеть результаты того, что вы ввели в поле.

В некоторых случаях вам может потребоваться использовать команду «тип», чтобы установить значение поля, а затем команду «typeKeys» для отправки событий нажатия клавиш, соответствующих тому, что вы только что набрали.

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