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