首页 > 解决方案 > 为什么插入符号“^”不适用于 Java+Selenium+Eclipse?

问题描述

我正在尝试用字母和特殊字符编写密码,但字符插入符号“^”不起作用。我尝试在 之后添加 \^ (因为我正在使用 Java 进行测试)sendKeys,编写了 unicode 等。

“`”等其他字符工作正常。但这不起作用

webDriver.findElement(By.id("password")).sendKeys("\\^"); 
webDriver.findElement(By.id("password")).sendKeys("ExA^mplePass1"); 

你能帮我吗?

谢谢

标签: javaeclipseseleniumunicodesendkeys

解决方案


我可以证实我的怀疑:ChromeDriver 配置为始终使用键盘布局US - QWERTY。如果没有找到,则使用其他一些非常基本的布局,其中不包含特殊字符,如^or °。结果:特殊字符不会被打印出来,无论你传递给SendKeys().

这种行为实际上是设计使然,甚至有据可查。如果确实启用了日志记录,则信息日志条目会提到该问题:

无法切换到美式键盘布局 - 某些键可能被错误解释

解决方案是安装键盘布局US - QWERTY(代码 00000409)(不是US International - QWERTY或类似的东西)。添加此布局的语言无关紧要。

转到Windows“语言设置”,单击“首选语言”部分下的任何语言,然后选择“选项”。然后添加US - QWERTY

在此处输入图像描述


推荐阅读