Когда у вас есть Java-строка типа «a \ tb \ nc», она становится последовательностью символов со значениями 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");
приведет к тому, что в браузер будет отправлена другая последовательность байтов, и только стандарты будут обязывать браузер работать так, как вы ожидаете.