Ввод ввода/возврата в Selenium

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

Ответ 1

import org.openqa.selenium.Keys

WebElement.sendKeys(Keys.RETURN);

Оператор import предназначен для Java, для других языков он может быть другим, например python: from selenium.webdriver.common.keys import Keys

Ответ 2

JAVA

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

ИЛИ

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

ПИТОН

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

ИЛИ

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

ИЛИ

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

РУБИН

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

ИЛИ

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

ИЛИ

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

С#

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

ИЛИ

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

Ответ 3

Теперь, когда 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")

Ответ 4

Вы можете использовать Keys.ENTER или Keys.RETURN. Вот некоторые подробности:

Использование:

  • Java:

    • Используя Keys.ENTER:

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.ENTER);
      
    • Использование Keys.RETURN

      import org.openqa.selenium.Keys;
      driver.findElement(By.id("element_id")).sendKeys(Keys.RETURN);
      
  • Python:

    • Использование Keys.ENTER:

      from selenium.webdriver.common.keys import Keys
      driver.find_element_by_id("element_id").send_keys(Keys.ENTER)
      
    • Использование Keys.RETURN

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

Keys.ENTER и Keys.RETURN оба из org.openqa.selenium.Keys, который расширяет java.lang.Enum<Keys> и реализует java.lang.CharSequence


Enum Keys

Enum Keys представляет собой нажатия клавиш, которые не являются текстовыми. Они хранятся в кодовых точках Unicode PUA (Частная область), 0xE000-0xF8FF.

Ключевые коды:

Специальное keys codes для них выглядит следующим образом:

  • ВОЗВРАТИТЕ= u'\ue006'
  • ENTER= u'\ue007'

Реализация всех Enum Keys обрабатывается одинаково.

Следовательно, это Нет Functional или Operational разницы при работе с sendKeys(Keys.ENTER); или WebElement.sendKeys(Keys.RETURN); через селен.


Введите ключ и нажмите клавишу возврата

На компьютерных клавиатурах Enter (или Return в Mac OSX) в большинстве случаев заставляет командную строку, форму окна или диалоговое окно работать по умолчанию. Обычно это завершает "enter" и начинает нужный процесс, и обычно является альтернативой нажатию кнопки "ОК".

Return часто также называют Enter, и они обычно выполняют идентичные функции; однако в некоторых конкретных приложениях (в основном макет страницы) Return работает, в частности, как ключ возврата каретки, из которого он исходит. Напротив, Enter обычно обозначается своим именем в виде обычного текста на обычных клавиатурах ПК.


Ссылки

Ответ 5

При написании тестов HTML клавиша ENTER доступна как ${KEY_ENTER}.

Вы можете использовать его с sendKeys, вот пример:

sendKeys | id=search | ${KEY_ENTER}

Ответ 6

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

Ответ 7

Вы просто делаете это:

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

Ответ 8

Для тех людей, которые используют WebDriverJS Keys.RETURN, будут называться

webdriver.Key.RETURN

Может быть полезен более полный пример в качестве ссылки:

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

Ответ 9

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

Ответ 10

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

ENTER = u '\ ue007'

обратитесь к документации по селену "Специальные клавиши"

Ответ 11

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

Ответ 12

Для Selenium RC с Java:

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

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

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

ИЛИ

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

Ответ 13

В Python

Шаг 1. from selenium.webdriver.common import keys

Шаг 2. driver.find_element_by_name("").send_keys(keys.Keys.ENTER)

Примечание: вы должны написать keys.Keys.ENTER

Ответ 14

если вы ищете "как нажимать клавишу ввода с клавиатуры в selenium webdriver (java)", то ниже код определенно поможет вам.

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

Ответ 15

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

"import org.openqa.selenium.Keys"

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

"WebElement.sendKeys(Keys.RETURN);"

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

Ответ 16

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

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

ИЛИ

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

ИЛИ

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

Ответ 17

Вы можете вызвать submit() для объекта элемента, в который вы ввели текст.

В качестве альтернативы вы можете отправить ему ключ ввода, как показано в следующем фрагменте кода Python:

from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ENTER) # element is the WebElement object corresponding to the input field on the page

Ответ 18

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

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

Ответ 19

Попробуйте использовать XPATH для поиска элемента, а затем работает следующий код:

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

Ответ 20

Вы можете попробовать:

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

Ответ 21

Для RUBY: -

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

Ответ 22

Для Selenium WebDriver с использованием xpath (если ключ виден):

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

или,

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

Ответ 23

Мне пришлось отправить ключ ввода в середине текста. Поэтому я передал следующий текст, чтобы отправить функцию ключей для достижения 1\n2\n3

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

Ответ 24

Если вы находитесь в этой конкретной ситуации:

a) хотите просто нажать клавишу, но не иметь конкретного веб-элемента, чтобы щелкнуть по

b) вы используете Selenium 2 (webDriver)

Тогда решение:

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

Ответ 25

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

Ответ 26

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

Ответ 27

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

работает

Ответ 28

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

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

Ответ 29

Для всех, кто использует javascript/node, это работает для меня:

driver.findElement(By.xpath('xpath')).sendKeys('ENTER');