Szukam szybkiego sposobu na wpisanie i naciśnięcie klawisza Enter lub Return w Selenium. Niestety formularz, który próbuję przetestować (nie mój własny kod, więc nie mogę go modyfikować) nie ma przycisku Prześlij. Podczas pracy z nim po prostu piszę ENTERlub RETURN. Muszę wiedzieć, jak to zrobić za pomocą type
polecenia Selenium, ponieważ nie ma przycisku do kliknięcia.
selenium
automation
automated-tests
keypress
enter
Croixhaug
źródło
źródło
Odpowiedzi:
import
stwierdzenie jest dla Javy, dla innych języków to może inna, na przykład python:from selenium.webdriver.common.keys import Keys
źródło
from selenium.webdriver.common.keys import Keys
( stackoverflow.com/questions/5503489/... )org.openqa.selenium.Keys
RETURN = '\ue006'
ENTER = '\ue007'
. Ale dlaczego? Niektóre różnice w reliktach lub systemach operacyjnych.JAWA
LUB,
PYTON
LUB,
LUB,
RUBIN
LUB,
LUB,
DO#
LUB,
źródło
Teraz, gdy Selenium 2 zostało wydane, trochę łatwiej jest wysłać klucz Enter, ponieważ można to zrobić za pomocą
send_keys
metodyselenium.webdriver.remote.webelement.WebElement
klasy (ten przykładowy kod znajduje się w Pythonie, ale ta sama metoda istnieje w Javie):źródło
Można użyć jednej z
Keys.ENTER
lubKeys.RETURN
. Oto kilka szczegółów:Stosowanie :
Java :
Używanie
Keys.ENTER
:Za pomocą
Keys.RETURN
Pyton:
Używanie
Keys.ENTER
:Za pomocą
Keys.RETURN
Keys.ENTER
iKeys.RETURN
oba pochodzą zorg.openqa.selenium.Keys
, który rozszerzajava.lang.Enum<Keys>
i implementujejava.lang.CharSequence
Klucze Enum
Enum Keys to reprezentacje klawiszy możliwych do naciśnięcia, które nie są tekstem. Są one przechowywane w punktach kodowych Unicode PUA ( Private Use Area ), 0xE000-0xF8FF.
Kluczowe kody:
Specjalne
keys codes
dla nich są następujące:u'\ue006'
u'\ue007'
Realizacja wszystkich
Enum Keys
jest obsługiwana w ten sam sposób.Stąd nich jest No
Functional
lubOperational
różnica w czasie pracy albo zsendKeys(Keys.ENTER);
lubWebElement.sendKeys(Keys.RETURN);
poprzez selen .Wprowadź klucz i klawisz powrotu
Na klawiaturach komputerowych Enter (lub Returnw systemie Mac OSX) w większości przypadków powoduje uruchomienie domyślnej funkcji wiersza polecenia, formularza okna lub okna dialogowego. Zwykle służy to zakończeniu „wpisu” i rozpoczęciu pożądanego procesu i zwykle stanowi alternatywę dla naciśnięcia przycisku OK.
ReturnJest często określany również jako Enteri oni zwykle wykonywać identyczne funkcje; jednak w niektórych szczególnych aplikacjach (głównie układ strony) Returndziała szczególnie podobnie jak powrót karetki klawisz , z którego pochodzi. W przeciwieństwie do tego Enterjest powszechnie oznaczany nazwą zwykłego tekstu na zwykłych klawiaturach komputerowych.
Bibliografia
źródło
Podczas pisania testów HTML klawisz ENTER jest dostępny jako
${KEY_ENTER}
.Możesz go używać z
sendKeys
, oto przykład:źródło
W Pythonie
Krok 1.
from selenium.webdriver.common.keys import Keys
Krok 2.
driver.find_element_by_name("").send_keys(Keys.ENTER)
Uwaga: musisz pisać
Keys.ENTER
źródło
Po prostu zrób to:
źródło
źródło
Dla tych, którzy używają WebDriverJS
Keys.RETURN
będzie oznaczony jakoPomocniejszy może być również pełniejszy przykład jako odniesienie:
źródło
driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
lubdriver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
źródło
ENTER = u '\ ue007'
zapoznaj się z dokumentacją selenu „Klucze specjalne”
źródło
I podobnie jak zauważyć, że musiałem to dla moich testów ogórek i okazało się, że jeśli chcesz, aby symulować naciśnięcie klawisza ENTER / powrotu, trzeba wysłać
:return
wartość i nie na:enter
wartość (patrz wartości opisane tutaj )źródło
W przypadku Selenium RC z Javą:
Dla Selenium WebDriver (alias Selenium2) z Javą:
LUB,
Innym sposobem na naciśnięcie Enter w WebDriver za pomocą klasy Actions:
źródło
jeśli szukasz „jak nacisnąć klawisz Enter z klawiatury w selenium webdriver (java)”, to poniższy kod na pewno Ci pomoże.
źródło
Możesz wywołać
submit()
obiekt elementu, w którym wpisałeś swój tekst.Alternatywnie możesz specjalnie wysłać do niego klucz Enter, jak pokazano w tym fragmencie kodu w pythonie:
źródło
Spróbuj użyć XPATH do wyszukiwania elementu, a następnie działa następujący kod:
źródło
Istnieją następujące sposoby naciskania klawiszy - C #:
LUB
LUB
źródło
to działa
źródło
Jeśli nie chcesz przeszukiwać żadnego lokalizatora, możesz użyć klasy Robot: np .:
źródło
Aby wprowadzić klucze za pomocą selenu Najpierw musisz zaimportować następującą bibliotekę:
następnie dodaj ten kod w miejscu, w którym chcesz wprowadzić klucz
Możesz zastąpić POWRÓT dowolnymi kluczami z listy zgodnie z własnymi wymaganiami
źródło
Można to osiągnąć również za pomocą interfejsu Action, w przypadku WebDriver -
źródło
Dla RUBY: -
źródło
Możesz spróbować :
źródło
Musiałem wysłać klawisz Enter w środku tekstu. Przekazałem więc następujący tekst, aby wysłać funkcję kluczy
1\n2\n3
źródło
W przypadku Selenium WebDriver za pomocą xpath (jeśli klucz jest widoczny):
lub,
źródło
Jeśli jesteś w tej konkretnej sytuacji:
a) chcę po prostu nacisnąć klawisz, ale nie mieć konkretnego elementu webElement do kliknięcia
b) używasz Selenium 2 (webDriver)
Zatem rozwiązaniem jest:
źródło
JAVA / JavaScript:
Prawdopodobnie możesz to zrobić również w ten sposób, nienatywnie :
źródło
źródło
Dla wszystkich używających javascript / node działało to dla mnie:
źródło