Имитация события нажатия клавиши TAB в Selenium RC - PullRequest
16 голосов
/ 29 июня 2010

Мне нужно смоделировать нажатие клавиши 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    "

Что я на самом деле хочу, так это перейти к следующему элементу управления. Есть какие-нибудь подсказки? Спасибо!

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

Ответы [ 5 ]

4 голосов
/ 06 июля 2010
selenium.keyPressNative(java.awt.event.KeyEvent.VK_TAB + ""); 

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

2 голосов
/ 07 июля 2010

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

1 голос
/ 21 июня 2012

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

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

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

1 голос
/ 22 декабря 2011

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

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

0 голосов
/ 25 июля 2013

Использовать typeKeys () :

Цитировать приведенную выше ссылку:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...