Имитировать событие нажатия клавиши 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 "
На самом деле я хочу перейти к следующему элементу управления. Любые подсказки? Спасибо!
(Примечание: я должен использовать вкладку и не могу использовать фокус или выбрать, чтобы выбрать элемент, к которому я хочу перейти, по разным причинам, поэтому никаких предложений по этим направлениям не нужно!)
Ответы
Ответ 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" для отправки событий нажатия клавиш, соответствующих тому, что вы только что набрали.