Firefox не получил ключ возврата - PullRequest
0 голосов
/ 03 мая 2019
WebElement element = ...
element.clear();
element.sendKey("1234567\n");

Chrome получил ключ возврата, а Firefox - нет.В чем разница между "\ n" и Keys.RETURN / Keys.ENTER?

 element.sendKey("1234567\t");

Но Chrome не получил клавишу TAB.

1 Ответ

1 голос
/ 03 мая 2019

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

...