Firefox没有获得返回键

时间:2019-05-02 23:03:49

标签: java selenium webdriver sendkeys

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

Chrome获得了返回键,但Firefox没有。 “ \ n”和Keys.RETURN / Keys.ENTER有什么区别?

 element.sendKey("1234567\t");

但是Chrome没有获得TAB键。

1 个答案:

答案 0 :(得分:1)

当您使用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");会导致将不同的字节序列发送到浏览器,并且只有标准要求浏览器才能执行该序列。