发送密钥Java代码在Mac上不工作
此代码用于robotframework中的自动化目的。在finder窗口上单击鼠标右键后,我想发送“e”、“d”等键,并从上下文菜单中选择一项。这是Java代码:发送密钥Java代码在Mac上不工作,java,macos,automation,robotframework,Java,Macos,Automation,Robotframework,此代码用于robotframework中的自动化目的。在finder窗口上单击鼠标右键后,我想发送“e”、“d”等键,并从上下文菜单中选择一项。这是Java代码: public void sendKeys(String text) throws Exception { int len = text.length(); char curr; for (int index=0; index<len; index++) { curr = text.to
public void sendKeys(String text) throws Exception {
int len = text.length();
char curr;
for (int index=0; index<len; index++) {
curr = text.toUpperCase().charAt(index);
assertTrue(
String.format("'%c' is not an alphanumeric character", curr),
(curr>=KeyEvent.VK_A && curr<=KeyEvent.VK_Z) || (curr>=KeyEvent.VK_0 && curr<=KeyEvent.VK_9)
);
robot.keyPress(curr);
robot.keyRelease(curr);
}
System.out.println("Send Keys "+text);
}
public void sendKeys(字符串文本)引发异常{
int len=text.length();
半货币;
对于(int index=0;index=KeyEvent.VK_A&&curr=KeyEvent.VK_0&&curr我使用的是:
public static void enterString(String value)
{
String Keyvalue=value.toUpperCase();
//System.out.println(Keyvalue);
for (int i=0;i<Keyvalue.length();i++)
{
//System.out.println(Keyvalue.charAt(i));
if(Keyvalue.charAt(i) == ':')
{
System.out.println("its a colon");
RoboKey.keyPress(KeyEvent.VK_SHIFT);
RoboKey.keyPress(KeyEvent.VK_SEMICOLON);
RoboKey.keyRelease(KeyEvent.VK_SEMICOLON);
RoboKey.keyRelease(KeyEvent.VK_SHIFT);
}
else if (Keyvalue.charAt(i) == '.')
{
RoboKey.keyPress(KeyEvent.VK_PERIOD);
}
else if (Keyvalue.charAt(i) == '_')
{
RoboKey.keyPress(KeyEvent.VK_SHIFT);
RoboKey.keyPress(KeyEvent.VK_MINUS);
RoboKey.keyRelease(KeyEvent.VK_MINUS);
RoboKey.keyRelease(KeyEvent.VK_SHIFT);
}
else
{
RoboKey.keyPress((int)Keyvalue.charAt(i));
}
}
}
公共静态无效输入字符串(字符串值)
{
字符串Keyvalue=value.toUpperCase();
//System.out.println(Keyvalue);
对于(int i=0;i你确定这不是Mac电脑上的预期行为吗?是的,我确定。我尝试过手动操作,并且能够从上下文菜单中选择该项不确定Mac问题,但你是否一直使用按键按下并释放?我通常只在使用SHIFT或CTRL键时使用按键按下并释放。尝试不使用按键释放!我有我的版本也可以输入字符串,如果你愿意,可以尝试一下。但我从未在上面测试过MAC@Waman-我在没有密钥释放的情况下尝试了该代码,但它不起作用。您可以共享enterString代码,我将在Mac上尝试吗?[link]()如果您有一些输入,请检查此代码,然后让我知道。