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


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

 element.sendKey("1234567\t");


但是Chrome没有获得TAB键。

最佳答案

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

关于java - Firefox没有获得返回键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55961301/

10-12 01:27
查看更多