press presionar keys selenium automation automated-tests keypress enter

presionar - Escribiendo la tecla Enter/Return en Selenium



selenium press key (26)

Estoy buscando una forma rápida de escribir y la tecla Intro o Retorno en Selenium. Desafortunadamente, el formulario que estoy tratando de probar (no mi propio código, por lo que no puedo modificar) no tiene un botón Enviar. Cuando trabajo con él manualmente, simplemente escribo ENTER o RETURN . Necesito saber cómo hacerlo con el comando de type Selenium ya que no hay ningún botón para hacer clic.


JAVA

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

O,

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

PITÓN

from selenium.webdriver.common.keys import Keys driver.find_element_by_name("Value").send_keys(Keys.RETURN)

O,

driver.find_element_by_name("Value").send_keys(Keys.ENTER)

O,

element = driver.find_element_by_id("Value") element.send_keys("keysToSend") element.submit()

RUBÍ

element = @driver.find_element(:name, "value") element.send_keys "keysToSend" element.submit

O,

element = @driver.find_element(:name, "value") element.send_keys "keysToSend" element.send_keys:return

O,

@driver.action.send_keys(:enter).perform @driver.action.send_keys(:return).perform

DO#

driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

O,

driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);


Ahora que se ha lanzado Selenium 2, es un poco más fácil enviar una tecla Intro, ya que puede hacerlo con el método send_keys de la clase selenium.webdriver.remote.webelement.WebElement (este código de ejemplo está en Python, pero el mismo método existe en 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")


Al escribir pruebas HTML, la tecla ENTRAR está disponible como ${KEY_ENTER} .

Puedes usarlo con sendKeys , aquí hay un ejemplo:

sendKeys | id=search | ${KEY_ENTER}


Cuando no desee buscar ningún localizador, puede usar la clase Robot: por ejemplo:

Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER);


Existen las siguientes formas de presionar las teclas - C #:

Driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

O

OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver); action.SendKeys(OpenQA.Selenium.Keys.Escape);

O

IWebElement body = GlobalDriver.FindElement(By.TagName("body")); body.SendKeys(Keys.Escape);


Para RUBY: -

driver.find_element(:id,"XYZ").send_keys:return


Para Selenium RC con Java:

selenium.keyPress("elementID", "/13");

Para Selenium WebDriver (también conocido como Selenium2) con java:

driver.findElement(By.id("elementID")).sendKeys(Keys.ENTER);

O,

driver.findElement(By.id("elementID")).sendKeys(Keys.RETURN);

Otra forma de presionar Enter en WebDriver usando la clase Acciones:

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


Para Selenium WebDriver usando xpath (si la clave está visible):

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.ENTER);

o,

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.RETURN);


Para aquellas personas que están usando WebDriverJS Keys.RETURN sería referenciada como

webdriver.Key.RETURN

Un ejemplo más completo como referencia también podría ser útil:

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; };


Para ingresar claves usando selenio, primero necesita importar la siguiente biblioteca:

"import org.openqa.selenium.Keys"

A continuación, agregue este código donde desea introducir la clave

"WebElement.sendKeys(Keys.RETURN);"

Puede reemplazar el RETORNO con cualquier clave de la lista de acuerdo con sus requerimientos


Puede utilizar cualquiera de Keys.ENTER o Keys.RETURN . Aquí hay algunos detalles:

Uso:

  • Java ( Keys.ENTER )

    //import import org.openqa.selenium.Keys; //using Keys.ENTER driver.findElement(By.id("element_id")).sendKeys(Keys.ENTER);

  • Java ( Keys.RETURN )

    //import import org.openqa.selenium.Keys; //using Keys.RETURN driver.findElement(By.id("element_id")).sendKeys(Keys.RETURN);

  • Python ( Keys.ENTER )

    #import from selenium.webdriver.common.keys import Keys #using Keys.ENTER driver.find_element_by_id("element_id").send_keys(Keys.ENTER)

  • Python ( Keys.RETURN )

    #import from selenium.webdriver.common.keys import Keys #using Keys.RETURN driver.find_element_by_id("element_id").send_keys(Keys.RETURN)

Keys.ENTER y Keys.RETURN son de org.openqa.selenium.Keys , que se extiende java.lang.Enum<Keys> e implementa java.lang.CharSequence

Enum Keys:

Enum Keys es la representación de teclas presionables que no son texto. Estos se almacenan en los puntos de código de Unicode PUA ( Private Use Area ), 0xE000-0xF8FF.

Códigos clave:

Los keys codes especiales para ellos son los siguientes:

  • RETURN = u''/ue006''
  • ENTER = u''/ue007''

La implementación de todas las Enum Keys se maneja de la misma manera.

Por lo tanto, no hay diferencia Functional ni Operational al trabajar con sendKeys(Keys.ENTER); o WebElement.sendKeys(Keys.RETURN); a través del selenio .

Tecla Intro y tecla de retorno:

En los teclados de computadora, la tecla Intro (o Retorno en Mac OSX) en la mayoría de los casos hace que la línea de comando, el formulario de ventana o el cuadro de diálogo operen su función predeterminada. Esto suele ser para finalizar una "entrada" y comenzar el proceso deseado, y suele ser una alternativa a presionar un botón Aceptar.

El retorno a menudo también se denomina Enter y, por lo general, realizan funciones idénticas; sin embargo, en algunas aplicaciones particulares (principalmente el diseño de página), el retorno funciona específicamente como la tecla Retorno de carro desde la cual se origina. Por el contrario, la entrada se suele etiquetar con su nombre en texto sin formato en teclados de PC genéricos.

Referencias Wiki : en.wikipedia.org/wiki/Enter_key Carriage Return en.wikipedia.org/wiki/Enter_key


Puedes probar :

selenium.keyPress("id="","//13");


Se podría lograr usando la interfaz Action también, en el caso de WebDriver -

WebElement username = driver.findElement(By.name("q")); username.sendKeys(searchKey); Actions action = new Actions(driver); action.sendKeys(Keys.RETURN); action.perform();


Si está buscando "cómo presionar la tecla Intro desde el teclado en Selenium Webdriver (Java)", el código a continuación definitivamente lo ayudará.

//assign key board object Keyboard keyboard=((HasInputDevices) driver).getKeyboard(); //enter a key keyboard.pressKey(Keys.ENTER);


Si estás en esta situación específica:

a) solo QUIERES presionar la tecla, pero no tener un elemento web específico para hacer clic en

b) está utilizando Selenium 2 (webDriver)

Entonces la solución es:

Actions builder = new Actions(webDriverInstance); builder.sendKeys(Keys.RETURN).perform();


Simplemente me gustaría tener en cuenta que necesitaba esto para mis pruebas de pepino y descubrí que si desea simular la presión de la tecla Intro / Retorno, debe enviar el :return valor de :return y no el valor de :enter (consulte los valores descritos here )


Solo haz esto:

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


Trate de usar XPATH para buscar el elemento y luego, el siguiente código funciona:

driver.findElement(By.xpath(".//*[@id=''txtFilterContentUnit'']")).sendKeys(Keys.ENTER);


Tuve que enviar la tecla enter en medio de un texto. Así que pasé el siguiente texto para enviar la función de llaves para lograr 1/n2/n3

1/N{U+E007}2/N{U+E007}3


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


JAVA / JavaScript:

Probablemente podrías hacerlo de esta manera también, de forma no nativa :

public void triggerButtonOnEnterKeyInTextField(String textFieldId, String clickableButId) { ((JavascriptExecutor) driver).executeScript(" elementId = arguments[0]; buttonId = arguments[1]; document.getElementById(elementId) .addEventListener("keyup", function(event) { event.preventDefault(); if (event.keyCode == 13) { document.getElementById(buttonId).click(); } });", textFieldId, clickableButId); }


Actions action = new Actions(driver); action.sendKeys(Keys.RETURN);


import org.openqa.selenium.Keys WebElement.sendKeys(Keys.RETURN);

la declaración de import es para Java, para otros lenguajes puede ser diferente, por ejemplo python: from selenium.webdriver.common.keys import Keys


object.sendKeys("your message",Keys.ENTER);

funciona


search = browser.find_element_by_xpath("//*[@type=''text'']") search.send_keys(u''/ue007'')

ENTER = u ''/ ue007''

Consulte la documentación de selenio ''Llaves especiales''


selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");