java - 为什么插入符号“^”不适用于 Java+Selenium+Eclipse?
问题描述
我正在尝试用字母和特殊字符编写密码,但字符插入符号“^”不起作用。我尝试在 之后添加 \^ (因为我正在使用 Java 进行测试)sendKeys
,编写了 unicode 等。
“`”等其他字符工作正常。但这不起作用
webDriver.findElement(By.id("password")).sendKeys("\\^");
webDriver.findElement(By.id("password")).sendKeys("ExA^mplePass1");
你能帮我吗?
谢谢
解决方案
我可以证实我的怀疑:ChromeDriver 配置为始终使用键盘布局US - QWERTY
。如果没有找到,则使用其他一些非常基本的布局,其中不包含特殊字符,如^
or °
。结果:特殊字符不会被打印出来,无论你传递给SendKeys()
.
这种行为实际上是设计使然,甚至有据可查。如果确实启用了日志记录,则信息日志条目会提到该问题:
无法切换到美式键盘布局 - 某些键可能被错误解释
解决方案是安装键盘布局US - QWERTY
(代码 00000409)(不是US International - QWERTY
或类似的东西)。添加此布局的语言无关紧要。
转到Windows“语言设置”,单击“首选语言”部分下的任何语言,然后选择“选项”。然后添加US - QWERTY
:
推荐阅读
- android - 如何连接到 000webhost 数据库?
- sql - WHERE 不能在 Postgresql 中使用 INNER JOIN
- sql-server - 如何使用 t-sql 编写包含声明的 xml 文件
- javascript - AJAX 数据变量未发布到 PHP 脚本,但 $_POST 已设置
- python - 如何在文本上绘画而不是多次打印?
- ios - “String”不是颤振中“int”类型的子类型
- wordpress - 删除 woocommerce 中的变化
- vba - 当我尝试在访问 vba 中锁定 ComboBox 时出现错误 2166
- linux - grep 模拟器的 PID 并使用 kubectl 杀死它
- jenkins - Jenkins 声明式管道 - 即使一个阶段失败,也继续进行后续阶段