Ich suche nach einer schnellen Möglichkeit, in Selenium eine Eingabetaste einzugeben. Leider hat das Formular, das ich testen möchte (nicht mein eigener Code, daher kann ich es nicht ändern), keine Schaltfläche zum Senden. Wenn ich manuell damit arbeite, tippe ich einfach ENTERoder RETURN. Ich muss wissen, wie man das mit dem Selenium- type
Befehl macht, da es keine Schaltfläche zum Klicken gibt.
selenium
automation
automated-tests
keypress
enter
Croixhaug
quelle
quelle
Antworten:
Die
import
Aussage ist für Java, für andere Sprachen ist es vielleicht eine andere, zum Beispiel Python:from selenium.webdriver.common.keys import Keys
quelle
from selenium.webdriver.common.keys import Keys
( stackoverflow.com/questions/5503489/… )org.openqa.selenium.Keys
RETURN = '\ue006'
ENTER = '\ue007'
. Aber wieso? Einige Relikt- oder Betriebssystemunterschiede.JAVA
ODER,
PYTHON
ODER,
ODER,
RUBIN
ODER,
ODER,
C #
ODER,
quelle
Nachdem Selenium 2 veröffentlicht wurde, ist es etwas einfacher, einen Enter-Schlüssel zu senden, da Sie dies mit der
send_keys
Methode derselenium.webdriver.remote.webelement.WebElement
Klasse tun können (dieser Beispielcode ist in Python, aber dieselbe Methode existiert in Java):quelle
Sie können entweder von
Keys.ENTER
oder verwendenKeys.RETURN
. Hier sind einige Details:Verwendung :
Java :
Verwenden von
Keys.ENTER
:Verwenden von
Keys.RETURN
Python:
Verwenden von
Keys.ENTER
:Verwenden von
Keys.RETURN
Keys.ENTER
undKeys.RETURN
beide sind vonorg.openqa.selenium.Keys
, die erweitertjava.lang.Enum<Keys>
und implementiertjava.lang.CharSequence
Enum Keys
Enum Keys ist die Darstellung von drückbaren Tasten, die kein Text sind. Diese werden in den Unicode PUA- Codepunkten ( Private Use Area ) 0xE000-0xF8FF gespeichert.
Schlüsselcodes:
Das Besondere
keys codes
für sie sind wie folgt:u'\ue006'
u'\ue007'
Die Implementierung aller
Enum Keys
erfolgt auf die gleiche Weise.Daher ist dies Nein
Functional
oderOperational
Unterschied bei der Arbeit mitsendKeys(Keys.ENTER);
oderWebElement.sendKeys(Keys.RETURN);
durch Selen .Eingabetaste und Eingabetaste
Auf Computertastaturen bewirkt das Enter(oder Returnunter Mac OSX) in den meisten Fällen, dass eine Befehlszeile, ein Fensterformular oder ein Dialogfeld ihre Standardfunktion ausführt. Dies dient normalerweise dazu, einen "Eintrag" zu beenden und den gewünschten Vorgang zu starten. Dies ist normalerweise eine Alternative zum Drücken einer OK-Taste.
Das Returnwird oft auch als das bezeichnet Enterund sie führen normalerweise identische Funktionen aus; In einigen bestimmten Anwendungen (hauptsächlich Seitenlayout) Returnfunktioniert dies jedoch speziell wie die Carriage Return- Taste, von der es stammt. Im Gegensatz dazu wird das Enterauf allgemeinen PC-Tastaturen häufig mit seinem Namen im Klartext gekennzeichnet.
Verweise
quelle
Beim Schreiben von HTML-Tests steht die ENTER-Taste als zur Verfügung
${KEY_ENTER}
.Sie können es mit verwenden
sendKeys
, hier ist ein Beispiel:quelle
In Python
Schritt 1.
from selenium.webdriver.common.keys import Keys
Schritt 2.
driver.find_element_by_name("").send_keys(Keys.ENTER)
Hinweis: Sie müssen schreiben
Keys.ENTER
quelle
Du machst einfach das:
quelle
quelle
Für diejenigen, die WebDriverJS verwenden
Keys.RETURN
, wird als bezeichnetEin vollständigeres Beispiel als Referenz könnte ebenfalls hilfreich sein:
quelle
driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
oderdriver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
quelle
ENTER = u '\ ue007'
Siehe Selendokumentation 'Spezialschlüssel'
quelle
Ich möchte nur darauf hinweisen, dass ich dies für meine Gurkentests benötigte und herausfand, dass Sie, wenn Sie das Drücken der Eingabetaste simulieren möchten, den
:return
Wert und nicht den:enter
Wert senden müssen (siehe die hier beschriebenen Werte ).quelle
Für Selenium RC mit Java:
Für Selenium WebDriver (auch bekannt als Selenium2) mit Java:
ODER,
Eine andere Möglichkeit, die Eingabetaste in WebDriver mithilfe der Actions-Klasse zu drücken:
quelle
Wenn Sie nach "Drücken der Eingabetaste über die Tastatur in Selenium Webdriver (Java)" suchen, hilft Ihnen der folgende Code auf jeden Fall.
quelle
Sie können
submit()
das Elementobjekt aufrufen, in das Sie Ihren Text eingegeben haben.Alternativ können Sie die Eingabetaste speziell an diese senden, wie in diesem Python-Snippet gezeigt:
quelle
Versuchen Sie, XPATH zum Durchsuchen des Elements zu verwenden, und dann funktioniert der folgende Code:
quelle
Es gibt folgende Möglichkeiten, Tasten zu drücken - C #:
ODER
ODER
quelle
Es klappt
quelle
Wenn Sie keinen Locator suchen möchten, können Sie die Robot-Klasse verwenden: z.
quelle
So geben Sie Schlüssel mit Selen ein Zuerst müssen Sie folgende Bibliothek importieren:
Fügen Sie dann diesen Code hinzu, in den Sie den Schlüssel eingeben möchten
Sie können RETURN entsprechend Ihren Anforderungen durch beliebige Schlüssel aus der Liste ersetzen
quelle
Könnte auch über die Aktionsschnittstelle im Fall von WebDriver erreicht werden -
quelle
Für RUBY: -
quelle
Du kannst es versuchen :
quelle
Ich musste die Eingabetaste mitten in einem Text senden. Also habe ich den folgenden Text übergeben, um Tastenfunktion zu senden, um zu erreichen
1\n2\n3
quelle
Für Selenium WebDriver mit xpath (wenn der Schlüssel sichtbar ist):
oder,
quelle
Wenn Sie sich in dieser speziellen Situation befinden:
a) Sie möchten NUR die Taste drücken, haben aber kein bestimmtes WebElement zum Klicken
b) Sie verwenden Selenium 2 (webDriver)
Dann ist die Lösung:
quelle
JAVA / JavaScript:
Sie könnten es wahrscheinlich auch so machen, nicht nativ :
quelle
quelle
Für alle, die Javascript / Node verwenden , hat dies für mich funktioniert:
quelle