web-dev-qa-db-ja.com

SeleniumでEnter / Returnキーを押す

SeleniumでEnterキーまたはReturnキーを押して入力する簡単な方法を探しています。残念ながら、私がテストしようとしているフォーム(自分のコードではないので変更できません)には送信ボタンがありません。手動でそれを扱うとき、私はただタイプする ENTER または RETURN。クリックするボタンがないので、Seleniumのtypeコマンドでそれを行う方法を知る必要があります。

217
croixhaug
import org.openqa.Selenium.Keys

WebElement.sendKeys(Keys.RETURN);

importステートメントはJAVA用ですが、他の言語では違うかもしれません、例えばPYTHON:from Selenium.webdriver.common.keys import Keys

265
Ralph

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

C#

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

または

driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);
160
Prashanth Sams

Selenium 2がリリースされたので、send_keysクラスのSelenium.webdriver.remote.webelement.WebElementメソッドを使ってそれを行うことができるので、Enterキーを送ることは少し簡単です:

>>> 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")
26
Eli Courtwright

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.ENTERKeys.RETURNはどちらもorg.openqa.Selenium.Keysから派生したもので、Java.lang.Enum<Keys>を継承して実装していますJava.lang.CharSequence


列挙キー

Enum Keysはテキストではない押下可能なキーの表現です。これらはUnicodeのPUA( Private Use Area )コードポイント、0xE000-0xF8FFに格納されています。

キーコード

特別なkeys codesは以下の通りです。

  • RETURN = u'\ue006'
  • ENTER = u'\ue007'

すべてのEnum Keysの実装は同じ方法で処理されます。

したがって、これらはNoFunctionalまたはOperationalのどちらかで作業しているときの違いsendKeys(Keys.ENTER);またはWebElement.sendKeys(Keys.RETURN);スルーSelenium


キーを入力してリターンキー

コンピュータのキーボードでは、 Enter (または Return Mac OS Xでは、ほとんどの場合、コマンドライン、ウィンドウフォーム、またはダイアログボックスでデフォルトの機能が動作します。これは通常、「入力」を終了して目的のプロセスを開始するためのものであり、通常は「OK」ボタンを押す代わりの方法です。

の Return しばしばとも呼ばれます Enter そしてそれらは通常同じ機能を実行します。ただし、特定のアプリケーション(主にページレイアウト)では Return それが由来するCarriage Returnキーのように特に動作します。対照的に、 Enter 一般的なPCキーボードでは、通常、プレーンテキストの名前でラベルが付けられています。


参考文献

21
DebanjanB

HTMLテストを書くとき、ENTERキーは${KEY_ENTER}として利用可能です。

あなたはそれをsendKeysと一緒に使うことができます、これは例です:

sendKeys | id=search | ${KEY_ENTER}
12
Maurice Svay
Selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");
9
Nirmal Patel

あなたはこれをするだけです:

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
hoang nguyen
search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')

ENTER = u '\ ue007'

seleniumのドキュメントの「特殊キー」を参照してください。

6
Ashish gupta

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;
};
6
Greg Stewart

driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);またはdriver.findElement(By.id("Value")).sendKeys(Keys.ENTER);

6
Mosam Mehta

私はCucumberテストにこれが必要であり、エンター/リターンキーを押すことをシミュレートしたいのであれば:return値を送る必要があり、notを必要とすることを知りました。 :enter値(ここで説明されている の値を参照してください

5

Selenium RC for Javaの場合

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

Javaを使用したSelenium WebDriver(別名Selenium 2)の場合:

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

または

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

Actionsクラスを使用してWebDriverでEnterキーを押すもう1つの方法:

Actions action = new Actions(driver); 
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();
5
Ripon Al Wasim

「Selenium webdriver(Java)でキーボードからEnterキーを押す方法」をお探しの場合は、以下のコードが確実に役立ちます。

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

Selenium Firstを使ってキーを入力するには、次のライブラリをインポートする必要があります。

"import org.openqa.Selenium.Keys"

それからキーを入力したいところにこのコードを追加してください

"WebElement.sendKeys(Keys.RETURN);"

必要に応じて、RETURNをリストのキーに置き換えることができます。

2
RNS

キーを押すには、次の方法があります - C#:

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

OR

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

OR

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

テキストの途中でエンターキーを送る必要がありました。それで私は1\n2\n3を達成するためにキー機能を送るために次のテキストを渡しました

1\N{U+E007}2\N{U+E007}3
1
Anand
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
1
Jack 666

XPATHを使用して要素を検索すると、次のコードが機能します。

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

テキストを入力した要素オブジェクトに対してsubmit()を呼び出すことができます。

別の方法として、このPythonスニペットに示すように、Enterキーを明確に送信することもできます。

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
1
entropy

WebDriverの場合、Actionインターフェースを使っても達成できます -

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

Rubyの場合: -

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

あなたがこの特定の状況にいるならば:

a)キーを押すだけですが、クリックする特定のwebElementはありません。

b)Selenium 2(webDriver)を使用しています

それでは解決策は:

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

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

ロケータを検索したくない場合は、Robotクラスを使用できます。

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

あなたが試すことができます :

Selenium.keyPress("id="","\\13");
1
dexter

Xpathを使用するSelenium WebDriverの場合(キーが表示されている場合):

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

または、

driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.RETURN);
1
object.sendKeys("your message",Keys.ENTER);

できます

1
Sanju Abel

Pythonの場合 - Selenium.webdriver.commonからのキーのインポート1.ステップ2

注 - keys.keys.ENTERを書く必要があります

0
jayesh

javascript/nodeを使用しているすべての人にとって、これは私にとってはうまくいきました:

driver.findElement(By.xpath('xpath')).sendKeys('ENTER');
0
Caleb Goodman