使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳实践是啥

Posted

技术标签:

【中文标题】使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳实践是啥【英文标题】:What is the best practice to simulate an ENTER or RETURN using Selenium WebDriver使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳实践是什么 【发布时间】:2017-12-14 23:38:17 【问题描述】:

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

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

什么是最好的做法,因为对于使用 enter 或 return 似乎存在分歧,因为两者在大多数情况下都有效?在什么情况下,一种或另一种不起作用,是否有一种总是有效的?

【问题讨论】:

【参考方案1】:

就性能而言,我对这两个方面都没有任何改变,

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

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

同时

Keys.Return用于字母旁边的一个

通常我更喜欢Keys.Enter,因为有时在某些浏览器中Keys.Return 不适合我

【讨论】:

【参考方案2】:

让我们详细分析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如下:

返回 = u'\ue006' ENTER = u'\ue007'

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

因此在使用 sendKeys(Keys.ENTER); 时存在 No FunctionalOperational 区别或 WebElement.sendKeys(Keys.RETURN);Selenium


输入键和返回键:

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

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

Wiki 参考资料 : Enter Key Carriage Return

【讨论】:

【参考方案3】:

作为您自己,我未能在网上找到对此问题的良好解释,因此我使用this Keyboard Events tester 自己进行了测试。

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):

所以这两个选项之间似乎没有区别。

【讨论】:

以上是关于使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳实践是啥的主要内容,如果未能解决你的问题,请参考以下文章

Python Selenium.WebDriver 对Cookies的处理及应用『模拟登录』

如何在 Selenium Webdriver 中模拟 HTML5 拖放?

使用 Selenium WebDriver 模拟 ENTER 或 RETURN 的最佳实践是啥

selenium+python - webdriver​模拟键盘ENTER没有效果

JAVA使用Selenium WebDriver chrome模拟Docker抓取网站核心代码

使用python - selenium模拟登陆b站