如何解决WinAppDriver / AZERTY 键盘:sendkeys() 不能正确发送数字
我尝试使用 WinAppDriver 进行 UI 测试。 Sendkeys() 发送 QWERTY txt,而我使用 AZERTY 布局。
我设法以这种方式重新定位字符,但它不适用于数字:
public static async Task<WindowsElement> SendKeyAndWait(this WindowsElement element,string azertyText,int secondsToWaitAfter = 0,int secondsToWaitFirst = 1)
{
await element.ClickAndWait(secondsToWaitFirst);
element.SendKeys(azertyText
.Replace("a","q")
.Replace("m",";")
.Replace("z","w")
.Replace(",","m") //WinAppDriver ne connait que le clavier qwerty donc q => a
.Replace("1","&") //semble ne pas fonctionner pour les chiffres
.Replace("0","à")
);
await Task.Delay(secondsToWaitAfter);
return element;
}
Has anyone already solved this issue ?
Thanks for your answers
解决方法
此问题已在 WinAppDriver repo.
上提出并仍然存在(4 年!)这是用户在此处建议的解决方法。
private static void SwitchToUsKeyboard()
{
var switchKeyboardLayoutActions = new Actions(AppSession);
switchKeyboardLayoutActions.SendKeys(Keys.Control + "0" + Keys.Control);
switchKeyboardLayoutActions.Build();
switchKeyboardLayoutActions.Perform();
}
private static void SwitchToFrKeyboard()
{
var switchKeyboardLayoutActions = new Actions(AppSession);
switchKeyboardLayoutActions.SendKeys(Keys.Control + "1" + Keys.Control);
switchKeyboardLayoutActions.Build();
switchKeyboardLayoutActions.Perform();
}
您必须先使用美式键盘设置美式语言(本示例中还设置为法语)。然后你需要为这些键盘添加快捷键。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。