java - Firefox 没有得到返回键
问题描述
WebElement element = ...
element.clear();
element.sendKey("1234567\n");
Chrome 得到了返回键,但 Firefox 没有。"\n" 和 Keys.RETURN/Keys.ENTER 有什么区别?
element.sendKey("1234567\t");
但是 Chrome 没有得到 TAB 键。
解决方案
当你有一个像“a\tb\nc”这样的java字符串时,它变成了一个ASCII值为65、9、66、10、67的字符序列。所以,如果你调用element.sendKey("a\tb\nc");
,那么这些字节将被发送到浏览器随心所欲。
相比之下,键值是 unicode,可以在源文件中看到https://github.com/SeleniumHQ/selenium/blob/master/java/client/src/org/openqa/selenium/Keys.java
TAB ('\uE004'),
CLEAR ('\uE005'),
RETURN ('\uE006'),
ENTER ('\uE007'),
SHIFT ('\uE008'),
很明显,调用element.sendKey("a" + Keys.TAB + "b" + Keys.ENTER + "c");
将导致将不同的字节序列发送到浏览器,而标准要求浏览器按您期望的方式执行的只是该序列。
推荐阅读
- javascript - 返回多个扩展组件的类
- assembly - x86 汇编编程(GAS 语法):存储在数据部分中定义的变量是什么?
- c# - PagedList.Mvc 4.5.0 无法安装,nuget 管理器无法正常工作 VS2013
- python - 将变量传递给子进程
- c# - includeDetails 在 ABP 框架中不起作用
- java - 为什么我的可序列化 java 类生成的序列化文件比普通文件大?
- c# - Task.Delay 不延迟异步方法
- sql-server-2014 - 可以在 SQL Server 2014 中部署 SSDT 2017/2019
- r - 在同一个窗口上合并 persp 和 ggplot 图, persp 太小了
- python - 从不同的目录启动 python 脚本