Как лучше всего имитировать ENTER или RETURN с помощью Selenium WebDriver

Я наткнулся на это решение моей первоначальной проблемы, которая заключалась в имитации ENTER или нажмите клавишу RETURN, используя Selenium WebDriver.

Однако в моем коде я строго хочу использовать только один из двух вариантов WebElement.sendKeys(Keys.ENTER); и WebElement.sendKeys(Keys.RETURN);.

Как лучше всего делать то же самое, поскольку мнения об использовании ввода или возврата, похоже, разделились, поскольку оба работают БОЛЬШИНСТВО времени? В каких сценариях один или другой не будет работать, и есть ли тот, который будет работать ВСЕГДА?


person GothamCityRises    schedule 14.12.2017    source источник


Ответы (3)


Что касается производительности, я не получаю никаких изменений в обоих из них,

Но да, я знаю одно отличие от них

Keys.Enter используется для ввода ключа на цифровой клавиатуре

пока

Keys.Return используется рядом с буквами

Обычно я предпочитал Keys.Enter, так как иногда в каком-то браузере Keys.Return у меня не работало

person iamsankalp89    schedule 15.12.2017

Давайте подробно проанализируем Keys.ENTER и Keys.RETURN.

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

Ключи перечисления:

Enum Keys — это представления нажимаемых клавиш, которые не являются текстом. Они хранятся в кодовых точках Unicode PUA (Private Use Area), 0xE000-0xF8FF.

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

Специальные keys codes для них:

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

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

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


Введите ключ и ключ возврата:

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

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

Вики-ссылки : Enter Key Carriage Return

person DebanjanB    schedule 15.12.2017

Как и вы, мне не удалось найти хорошее объяснение этого вопроса в Интернете, поэтому я проверил его сам, используя этот тестер событий клавиатуры.

driver.get("https://dvcs.w3.org/hg/d4e/raw-file/tip/key-event-test.html");
WebElement textArea = driver.findElement(By.id("input"));

textArea.sendKeys(Keys.ENTER);
textArea.sendKeys(Keys.RETURN);

В результате я получил этот вывод (это Keys.ENTER, за которым следует Keys.RETURN): Выход регистратора событий клавиатуры

Таким образом, кажется, что между этими двумя вариантами нет никакой разницы.

person Eugene S    schedule 15.12.2017