Подтвердить что ты не робот

Имитировать событие нажатия клавиши TAB в Selenium RC

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

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

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    "

На самом деле я хочу перейти к следующему элементу управления. Любые подсказки? Спасибо!

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

4b9b3361

Ответ 1

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

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

Ответ 2

Попробуйте официальную TAB char: \t или \u0009

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

Используйте typeKeys():

Указав ссылку выше:

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

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