Ввод Enter / Return ключ в Selenium - PullRequest
       63

Ввод Enter / Return ключ в Selenium

217 голосов
/ 27 октября 2009

Я ищу быстрый способ ввода и ввода или возврата ключа в Selenium. К сожалению, форма, которую я пытаюсь проверить (не мой собственный код, поэтому я не могу изменить), не имеет кнопки Отправить. Работая с ним вручную, я просто набираю ENTER или RETURN . Мне нужно знать, как это сделать с помощью команды Selenium type, так как кнопка не нажимается.

Ответы [ 29 ]

5 голосов
/ 12 июля 2011

Я просто хотел бы отметить, что мне это нужно для моих тестов на огурец, и обнаружил, что если вы хотите имитировать нажатие клавиши ввода / возврата, вам нужно отправить значение :return и , а не . :enter значение (см. Значения, описанные здесь )

5 голосов
/ 07 апреля 2015

Для Selenium RC с Java:

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

Для Selenium WebDriver (a.k.a. Selenium2) с Java:

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

OR

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

Другой способ нажать Enter в WebDriver с помощью класса Actions:

Actions action = new Actions(driver); 
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();
3 голосов
/ 28 мая 2015

Если вы ищете "как нажать клавишу ввода с клавиатуры в Selena Webdriver (Java)", то приведенный ниже код вам точно поможет.

//assign key board object
Keyboard keyboard=((HasInputDevices) driver).getKeyboard();
//enter a key
keyboard.pressKey(Keys.ENTER);
2 голосов
/ 07 ноября 2016

Существуют следующие способы нажатия клавиш - C #:

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

OR

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

OR

IWebElement body = GlobalDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Escape);
2 голосов
/ 22 августа 2016

Для ввода ключей с использованием селена Сначала вам нужно импортировать следующую библиотеку:

"import org.openqa.selenium.Keys"

затем добавьте этот код, где вы хотите ввести ключ

"WebElement.sendKeys(Keys.RETURN);"

Вы можете заменить RETURN на любые ключи из списка по вашему требованию

1 голос
/ 10 ноября 2017

Если вы не хотите искать какой-либо локатор, вы можете использовать класс Robot: например:

            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
1 голос
/ 04 сентября 2017
object.sendKeys("your message",Keys.ENTER);

это работает

1 голос
/ 06 января 2017
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
1 голос
/ 29 октября 2016

JAVA / JavaScript:

Возможно, вы могли бы сделать это также, не родным образом :

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);
}
1 голос
/ 01 октября 2013

Может быть достигнуто также с использованием интерфейса Action, в случае WebDriver -

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