delay setings dont speedup enterText
Issue by a from Mon, 30 Nov 2009 05:10:44 -0600 Originally opened as http://jira.codehaus.org/browse/FEST-265
you cant speedup enterText with the delay settings.
robot.settings().delayBetweenEvents(10); robot.settings().eventPostingDelay(10); XXXXXXX.enterText(text);
Thas only works for keys without modifiers like Numbers.
Workaround (using awt.Robot, German Keybord and AltGr dont work):
public void setTextSim(String text, CommonComponentFixture component){ KeyStrokeMappingProvider_de provider= new KeyStrokeMappingProvider_de(); KeyStrokeMap.addKeyStrokesFrom(provider);java.awt.Robot awtRobot = <span class="code-keyword">null</span>; <span class="code-keyword">try</span> { awtRobot = <span class="code-keyword">new</span> java.awt.Robot(); } <span class="code-keyword">catch</span> (AWTException e) { e.printStackTrace(); } awtRobot.setAutoDelay(5); component.focus(); <span class="code-object">boolean</span> shiftPressed=<span class="code-keyword">false</span>; <span class="code-keyword">for</span> (<span class="code-object">int</span> i=0;i<text.length();i++){ <span class="code-object">char</span> character = text.charAt(i); <span class="code-object">boolean</span> needShift=((KeyStrokeMap.keyStrokeFor(character).getModifiers() & InputEvent.SHIFT_DOWN_MASK) != 0 ); <span class="code-keyword">if</span> (needShift){ <span class="code-keyword">if</span> (!shiftPressed){ awtRobot.keyPress(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=<span class="code-keyword">true</span>; } } <span class="code-keyword">else</span> {<span class="code-comment">//dont need shiftif (shiftPressed){ awtRobot.keyRelease(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=false; }
}<span class="code-object">int</span> keyCode=KeyStrokeMap.keyStrokeFor(character).getKeyCode(); awtRobot.keyRelease(keyCode); awtRobot.waitForIdle(); awtRobot.keyPress(keyCode); awtRobot.waitForIdle(); } <span class="code-keyword">if</span> (shiftPressed){ robot.releaseKey(KeyEvent.VK_SHIFT); } }
votes (original issue): 0 watches (original issue): 1
Comment by henningb from Mon, 30 Nov 2009 05:17:52 -0600
with source tags:
public void setTextSim(String text, CommonComponentFixture component){ KeyStrokeMappingProvider_de provider= new KeyStrokeMappingProvider_de(); KeyStrokeMap.addKeyStrokesFrom(provider);java.awt.Robot awtRobot = <span class="code-keyword">null</span>; <span class="code-keyword">try</span> { awtRobot = <span class="code-keyword">new</span> java.awt.Robot(); } <span class="code-keyword">catch</span> (AWTException e) { e.printStackTrace(); } awtRobot.setAutoDelay(5); component.focus(); <span class="code-object">boolean</span> shiftPressed=<span class="code-keyword">false</span>; <span class="code-keyword">for</span> (<span class="code-object">int</span> i=0;i<text.length();i++){ <span class="code-object">char</span> character = text.charAt(i); <span class="code-object">boolean</span> needShift=((KeyStrokeMap.keyStrokeFor(character).getModifiers() & InputEvent.SHIFT_DOWN_MASK) != 0 ); <span class="code-keyword">if</span> (needShift){ <span class="code-keyword">if</span> (!shiftPressed){ awtRobot.keyPress(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=<span class="code-keyword">true</span>; } } <span class="code-keyword">else</span> {<span class="code-comment">//dont need shiftif (shiftPressed){ awtRobot.keyRelease(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=false; }
} int keyCode=KeyStrokeMap.keyStrokeFor(character).getKeyCode();awtRobot.keyRelease(keyCode); awtRobot.waitForIdle(); awtRobot.keyPress(keyCode); awtRobot.waitForIdle(); } <span class="code-keyword">if</span> (shiftPressed){ robot.releaseKey(KeyEvent.VK_SHIFT); }}