Japanese character support for typeKey() method in robot model

Alexandre (Shura) Iline alexandre.iline at oracle.com
Mon Jun 10 18:43:20 UTC 2019


Abhijith,

It would help if there was a test case. Is it possible to create a test which demonstrates the problem on english locale?

Shura

> On Jun 2, 2019, at 11:19 AM, Gururaj, Abhijith <Abhijith_Gururaj at mentor.com> wrote:
> 
> Hi,
> We have a use case where we need to enter Japanese characters in certain input fields. Our automation framework uses Jemmy to test this functionality. It looks like this is not possible in Jemmy using the Robot dispatch model as we are getting the following error when we use the typeKey() method to set the text. There is a similar issue raised in this thread<https://netbeans.org/bugzilla/show_bug.cgi?id=21011>.
> 
> org.netbeans.jemmy.JemmyException: Exception during java.awt.Robot accessing
>        at org.netbeans.jemmy.drivers.input.RobotDriver.makeAnOperation(RobotDriver.java:232)
>        at org.netbeans.jemmy.drivers.input.RobotDriver.pressKey(RobotDriver.java:201)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.pressKey(KeyRobotDriver.java:94)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.pushKey(KeyRobotDriver.java:78)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.typeKey(KeyRobotDriver.java:84)
>        at org.netbeans.jemmy.drivers.text.TextKeyboardDriver.typeText(TextKeyboardDriver.java:108)
>        at org.netbeans.jemmy.operators.JTextComponentOperator$4.launch(JTextComponentOperator.java:532)
>        at org.netbeans.jemmy.ActionProducer.launchAction(ActionProducer.java:337)
>        at org.netbeans.jemmy.ActionProducer.run(ActionProducer.java:296)
> Inner exception:
> java.lang.reflect.InvocationTargetException
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at org.netbeans.jemmy.ClassReference.invokeMethod(ClassReference.java:159)
>        at org.netbeans.jemmy.drivers.input.RobotDriver.makeAnOperation(RobotDriver.java:229)
>        at org.netbeans.jemmy.drivers.input.RobotDriver.pressKey(RobotDriver.java:201)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.pressKey(KeyRobotDriver.java:94)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.pushKey(KeyRobotDriver.java:78)
>        at org.netbeans.jemmy.drivers.input.KeyRobotDriver.typeKey(KeyRobotDriver.java:84)
>        at org.netbeans.jemmy.drivers.text.TextKeyboardDriver.typeText(TextKeyboardDriver.java:108)
>        at org.netbeans.jemmy.operators.JTextComponentOperator$4.launch(JTextComponentOperator.java:532)
>        at org.netbeans.jemmy.ActionProducer.launchAction(ActionProducer.java:337)
>        at org.netbeans.jemmy.ActionProducer.run(ActionProducer.java:296)
> Caused by: java.lang.IllegalArgumentException: Invalid key code
>        at java.awt.Robot.checkKeycodeArgument(Unknown Source)
>        at java.awt.Robot.keyPress(Unknown Source)
>        ... 14 more
> 
> 
> Is there a support for multi-byte characters(CJK etc) in Jemmy's robot model? The only workaround we found for this was to change the dispatch model to  QUEUE_MODEL_MASK. We would still like to use the robot model for this purpose.
> 
> I would really appreciate a little help on this. Thanks!
> 
> Regards,
> Abhijith
> 



More information about the jemmy-dev mailing list