代码之家  ›  专栏  ›  技术社区  ›  GothamCityRises

使用Selenium WebDriver模拟回车的最佳实践是什么

  •  2
  • GothamCityRises  · 技术社区  · 8 年前

    我偶然发现 this 我最初问题的解决方案是使用Selenium WebDriver模拟回车键。

    然而,在我的代码中,我严格希望只使用这两种代码中的一种 WebElement.sendKeys(Keys.ENTER); vs WebElement.sendKeys(Keys.RETURN); .

    既然对使用enter或return有不同的意见,因为这两种方法在大多数情况下都有效,那么进行相同操作的最佳实践是什么?在什么情况下,一个或另一个不起作用,是否有一个始终有效?

    3 回复  |  直到 8 年前
        1
  •  1
  •   iamsankalp89    8 年前

    作为一个性能方面,我在这两个方面都没有任何变化,

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

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

    虽然

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

    一般来说,我更喜欢 钥匙。进来 有时在某些浏览器中 钥匙。回来 不适合我

        2
  •  1
  •   undetected Selenium    8 年前

    让我们分析一下 Keys.ENTER Keys.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'
    • 输入 = u'\ue007'

    实施所有 枚举键 处理方式相同。

    因此有 Functional Operational 使用其中一个时的差异 sendKeys(Keys.ENTER); WebElement.sendKeys(Keys.RETURN); 通过 .


    输入键和返回键:

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

    回来 通常也称为 进来 它们通常执行相同的功能;但是在某些特定应用程序中(主要是页面布局) 回来 具体操作与 回车 它来源的键。相比之下 进来 通常在普通PC键盘上用纯文本标记其名称。

    Wiki引用 : Enter Key Carriage Return

        3
  •  0
  •   Eugene S    8 年前

    作为你自己,我在网上找不到这个问题的好解释,所以我自己用 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 ): Keyboard Events logger output

    所以这两种选择似乎没有区别。