Firefox 没有得到 return 键

Firefox did not get the return key

WebElement element = ...
element.clear();
element.sendKey("1234567\n");

Chrome 得到了 return 键,但是 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");],然后这些字节将被发送到浏览器以进行处理。

相比之下,Keys 值是 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"); 会导致向浏览器发送不同的字节序列,并且只有标准要求浏览器按照您的预期执行该序列。