Simulate TAB keypress event in Selenium RC

18,249

Solution 1

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

I don't use the Java API, but this post from google groups suggests it is your solution. I can't imagine that "9" is different from "09" in your question, but give it a try?

Solution 2

Try the official TAB char: \t or \u0009

Solution 3

Improvising Ryley's answer, we can use

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

I tried this method for VK_CONTROL in IE and it worked good.

Solution 4

Some functions may used Onblur. It will trigger the function when the field lose the key focus. here we can use fireEvent with "blur" or "focus" command as follows: command: fireEvent target: id=your_field_identification value: blur

Reference: http://qaselenium.blogspot.com/2011/01/how-to-triger-tab-key-in-selenium.html

Share:
18,249
Joel
Author by

Joel

My sites: Rewcawl.com - A search engine for your browsing history. SoundCloudWall - Data mining SoundCloud users and tracks. BookmarkerPro - Search your bookmarks and monitor any page WebAlertPro - Competitive Website Content Monitoring

Updated on June 26, 2022

Comments

  • Joel
    Joel about 2 years

    I need to simulate a tab keypress in Selenium RC, using the Java API.

    I do this after having entered some text using:

    selenium.type(input, "mytext");
    

    I've tried 3 alternatives to get the tab working:

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

    and:

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

    and even:

    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);")
    

    The best I can get is a "tab space" to be inserted after my text so I end up with this in the input field:

    "mytext    "
    

    What I actually want is to tab to the next control. Any clues? Thanks!

    (Note: I have to use tab and can not use focus or select to chose the element I want to go to, for various reasons, so no suggestions along these lines please!)

  • Joel
    Joel almost 14 years
    09 or 9, makes not difference I'm afraid.
  • Ryley
    Ryley almost 14 years
    What happens if you don't focus first? i.e. just tab through the form, then enter something at the end (I'm not saying this will solve your problem, just curious)
  • Merlyn Morgan-Graham
    Merlyn Morgan-Graham over 12 years
    @Joel: Please update the question to mention it. I don't see \t anywhere in there.
  • Upperstage
    Upperstage over 12 years
    I found it necessary to focus and then tab to trigger a blur.