Я ищу быстрый способ ввода и ввода или возврата ключа в Selenium. К сожалению, форма, которую я пытаюсь проверить (не мой собственный код, поэтому я не могу изменить), не имеет кнопки "Отправить". При работе с ним вручную, просто введите ENTER или RETURN. Мне нужно знать, как это сделать с помощью команды Selenium type
, поскольку кнопка не нажата.
Ввод ввода/возврата в Selenium
Ответ 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');