使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳做法是什么

What is the best practice to simulate an ENTER or RETURN using Selenium WebDriver

我遇到了 this 最初问题的解决方案,即使用 Selenium WebDriver 模拟 ENTER 或 RETURN 按键。

但是,在我的代码中,我只想使用 WebElement.sendKeys(Keys.ENTER);WebElement.sendKeys(Keys.RETURN); 这两个中的一个。

执行相同操作时最佳做法是什么,因为对于使用 enter 或 return 似乎存在分歧意见,因为大多数时候两者都有效?在什么情况下一种或另一种不起作用,有一种总是有效的吗?

作为你自己,我未能在网上找到对这个问题的很好解释,所以我自己使用 this 键盘事件测试器进行了测试。

driver.get("https://dvcs.w3.org/hg/d4e/raw-file/tip/key-event-test.html");
WebElement textArea = driver.findElement(By.id("input"));

textArea.sendKeys(Keys.ENTER);
textArea.sendKeys(Keys.RETURN);

结果我得到了这个输出(这是 Keys.ENTER 后跟 Keys.RETURN):

所以看起来这两个选项之间没有区别。

作为性能方面,我在这两个方面都没有得到任何改变,

但是是的,我知道它们之间的一个区别

Keys.Enter用于在数字键盘上输入键

同时

Keys.Return习惯用字母旁边的一个

通常我更喜欢 Keys.Enter因为有时在某些浏览器中 Keys.Return 对我不起作用

让我们详细分析Keys.ENTERKeys.RETURN

Keys.ENTERKeys.RETURN 都来自 org.openqa.selenium.Keys,它扩展了 java.lang.Enum<Keys> 并实现了 java.lang.CharSequence

枚举键:

Enum Keys 是非文本的可按下键的表示。这些存储在 Unicode PUA (Private Use Area) 代码点中,0xE000-0xF8FF。

关键代码:

他们的特殊keys codes如下:

  • RETURN = u'\ue006'
  • 回车 = u'\ue007'

所有Enum Keys的实现都以同样的方式处理。

因此有没有FunctionalOperational通过 sendKeys(Keys.ENTER);WebElement.sendKeys(Keys.RETURN); 通过 Selenium.


输入密钥和Return密钥:

在计算机键盘上,Enter(或 Mac OSX 上的 Return ) 在大多数情况下会导致命令行、window 表单或对话框运行其默认功能。这通常是为了完成 "entry" 并开始所需的过程,并且通常是按下 OK 按钮的替代方法。

Return 通常也称为 Enter,它们通常执行相同的功能;然而,在某些特定的应用程序(主要是页面布局)中,Return 的操作特别类似于 Carriage Return 键.相比之下,Enter 通常在通用 PC 键盘上以纯文本形式标有其名称。

Wiki References : Enter Key Carriage Return