在Selenium中输入Enter/Return键

cro*_*aug 236 selenium automation automated-tests enter keypress

我正在寻找一种在Selenium中输入和输入或返回键的快捷方式.不幸的是,我试图测试的表单(不是我自己的代码,所以我无法修改)没有提交按钮.手动使用时,我只需输入ENTERRETURN.我需要知道如何使用Selenium type命令执行此操作,因为没有可单击的按钮.

Ral*_*lph 283

import org.openqa.selenium.Keys

WebElement.sendKeys(Keys.RETURN);
Run Code Online (Sandbox Code Playgroud)

import语句适用于Java,对于其他语言,它可能是不同的,例如python:from selenium.webdriver.common.keys import Keys

  • 我相信它感动了.`from selenium.webdriver.common.keys import keys`(http://stackoverflow.com/questions/5503489/python-selenium-example-doesnt-work-says-no-module-named-keys) (22认同)
  • 我知道返回与输入不同,但Keys.ENTER有何不同?(我认为Keys.RETURN会让它更明显地表明它是一个执行动作的机器人吗?) (3认同)
  • @NoBrainer:Enter和Return是不同的键,看看这个维基百科文章的图像:https://en.wikipedia.org/wiki/Enter_key (2认同)
  • 对于python:`from selenium.webdriver.common.keys import Keys` `password_field.send_keys(Keys.ENTER)` (2认同)

Pra*_*ams 172

JAVA

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
Run Code Online (Sandbox Code Playgroud)

要么,

driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
Run Code Online (Sandbox Code Playgroud)

蟒蛇

from selenium.webdriver.common.keys import Keys
driver.find_element_by_name("Value").send_keys(Keys.RETURN)
Run Code Online (Sandbox Code Playgroud)

要么,

driver.find_element_by_name("Value").send_keys(Keys.ENTER)
Run Code Online (Sandbox Code Playgroud)

要么,

element = driver.find_element_by_id("Value")
element.send_keys("keysToSend")
element.submit()
Run Code Online (Sandbox Code Playgroud)

红宝石

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.submit
Run Code Online (Sandbox Code Playgroud)

要么,

element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.send_keys:return
Run Code Online (Sandbox Code Playgroud)

要么,

@driver.action.send_keys(:enter).perform
@driver.action.send_keys(:return).perform
Run Code Online (Sandbox Code Playgroud)

C#

driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);
Run Code Online (Sandbox Code Playgroud)

要么,

driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);
Run Code Online (Sandbox Code Playgroud)


Eli*_*ght 26

现在已经发布了Selenium 2,发送一个Enter键要容易一些,因为你可以使用类的send_keys方法selenium.webdriver.remote.webelement.WebElement(这个示例代码在Python中,但Java中存在相同的方法):

>>> from selenium import webdriver
>>> wd = webdriver.Firefox()
>>> wd.get("http://localhost/example/page")
>>> textbox = wd.find_element_by_css_selector("input")
>>> textbox.send_keys("Hello World\n")
Run Code Online (Sandbox Code Playgroud)

  • 或者更一般地说,来自“Keys”的值(导入可以是“selenium.webdriver.common.keys import Keys”),在本例中为“Keys.RETURN”。 (2认同)

Deb*_*anB 23

您可以使用两种 Keys.ENTERKeys.RETURN.以下是一些细节:

用法:

Keys.ENTER并且Keys.RETURN都来自org.openqa.selenium.Keys,扩展java.lang.Enum<Keys>和实施java.lang.CharSequence


枚举键

枚举键是不是文本的可按键的表示.它们存储在Unicode PUA(专用区)代码点0xE000-0xF8FF中.

关键代码:

keys codes它们的特殊之处如下:

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

所有的实现Enum Keys都以相同的方式处理.

因此,在使用Selenium或通过Selenium进行处理时,这些是没有 FunctionalOperational不同的.sendKeys(Keys.ENTER);WebElement.sendKeys(Keys.RETURN);


输入密钥和返回密钥

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

Return通常也称为作为Enter他们通常执行相同的功能; 但是在某些特定应用程序(主要是页面布局)中,它的Return运行方式与它所源自的回车键一样.相比之下,Enter通常在通用PC键盘上用明文标记其名称.


参考


小智 12

编写HTML测试时,ENTER键可用${KEY_ENTER}.

你可以使用它sendKeys,这是一个例子:

sendKeys | id=search | ${KEY_ENTER}
Run Code Online (Sandbox Code Playgroud)


Nir*_*tel 9

selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");
Run Code Online (Sandbox Code Playgroud)


hoa*_*yen 9

你这样做:

final private WebElement input = driver.findElement(By.id("myId"));
input.clear();
input.sendKeys(value); // the value we want to set to input
input.sendKeys(Keys.RETURN);
Run Code Online (Sandbox Code Playgroud)


小智 6

对于那些使用WebDriverJS的人Keys.RETURN将被引用为

webdriver.Key.RETURN
Run Code Online (Sandbox Code Playgroud)

作为参考的更完整的示例也可能有用:

var pressEnterToSend = function () {
    var deferred = webdriver.promise.defer();
    webdriver.findElement(webdriver.By.id('id-of-input-element')).then(function (element) {
        element.sendKeys(webdriver.Key.RETURN);
        deferred.resolve();
    });

    return deferred.promise;
};
Run Code Online (Sandbox Code Playgroud)


Mos*_*hta 6

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN); 要么 driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);


小智 6

search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')
Run Code Online (Sandbox Code Playgroud)

ENTER = u'\ ue007'

请参阅硒文档“特殊键”


Pas*_*auf 5

我只是想指出,我需要为我的黄瓜测试,发现如果你想模拟按下回车/返回键,你需要发送的:return值,并没有:enter值(见描述的值这里)


Rip*_*sim 5

对于使用Java的Selenium RC:

selenium.keyPress("elementID", "\13");
Run Code Online (Sandbox Code Playgroud)

对于Selenium WebDriver(又名Selenium2)与java:

driver.findElement(By.id("elementID")).sendKeys(Keys.ENTER);
Run Code Online (Sandbox Code Playgroud)

要么,

driver.findElement(By.id("elementID")).sendKeys(Keys.RETURN);
Run Code Online (Sandbox Code Playgroud)

使用Actions类在WebDriver中按Enter键的另一种方法:

Actions action = new Actions(driver); 
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();
Run Code Online (Sandbox Code Playgroud)


小智 5

在Python中

步骤1。 from selenium.webdriver.common import keys

第2步。 driver.find_element_by_name("").send_keys(keys.Keys.ENTER)

注意:你必须写keys.Keys.ENTER