SeleniumでEnterキーまたはReturnキーを押して入力する簡単な方法を探しています。残念ながら、私がテストしようとしているフォーム(自分のコードではないので変更できません)には送信ボタンがありません。手動でそれを扱うとき、私はただタイプする ENTER または RETURN。クリックするボタンがないので、Seleniumのtype
コマンドでそれを行う方法を知る必要があります。
import org.openqa.Selenium.Keys
WebElement.sendKeys(Keys.RETURN);
import
ステートメントはJAVA用ですが、他の言語では違うかもしれません、例えばPYTHON:from Selenium.webdriver.common.keys import Keys
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);
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")
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はテキストではない押下可能なキーの表現です。これらはUnicodeのPUA( Private Use Area )コードポイント、0xE000-0xF8FFに格納されています。
特別なkeys codes
は以下の通りです。
u'\ue006'
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キーボードでは、通常、プレーンテキストの名前でラベルが付けられています。
HTMLテストを書くとき、ENTERキーは${KEY_ENTER}
として利用可能です。
あなたはそれをsendKeys
と一緒に使うことができます、これは例です:
sendKeys | id=search | ${KEY_ENTER}
Selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");
あなたはこれをするだけです:
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);
search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')
seleniumのドキュメントの「特殊キー」を参照してください。
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;
};
driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
またはdriver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
私はCucumberテストにこれが必要であり、エンター/リターンキーを押すことをシミュレートしたいのであれば:return
値を送る必要があり、notを必要とすることを知りました。 :enter
値(ここで説明されている の値を参照してください )
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();
「Selenium webdriver(Java)でキーボードからEnterキーを押す方法」をお探しの場合は、以下のコードが確実に役立ちます。
//assign key board object
Keyboard keyboard=((HasInputDevices) driver).getKeyboard();
//enter a key
keyboard.pressKey(Keys.ENTER);
Selenium Firstを使ってキーを入力するには、次のライブラリをインポートする必要があります。
"import org.openqa.Selenium.Keys"
それからキーを入力したいところにこのコードを追加してください
"WebElement.sendKeys(Keys.RETURN);"
必要に応じて、RETURNをリストのキーに置き換えることができます。
キーを押すには、次の方法があります - 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);
テキストの途中でエンターキーを送る必要がありました。それで私は1\n2\n3
を達成するためにキー機能を送るために次のテキストを渡しました
1\N{U+E007}2\N{U+E007}3
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
XPATHを使用して要素を検索すると、次のコードが機能します。
driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);
テキストを入力した要素オブジェクトに対して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
WebDriverの場合、Actionインターフェースを使っても達成できます -
WebElement username = driver.findElement(By.name("q"));
username.sendKeys(searchKey);
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
action.perform();
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();
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);
}
ロケータを検索したくない場合は、Robotクラスを使用できます。
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
あなたが試すことができます :
Selenium.keyPress("id="","\\13");
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);
object.sendKeys("your message",Keys.ENTER);
できます
Pythonの場合 - Selenium.webdriver.commonからのキーのインポート1.ステップ2
注 - keys.keys.ENTERを書く必要があります
javascript/nodeを使用しているすべての人にとって、これは私にとってはうまくいきました:
driver.findElement(By.xpath('xpath')).sendKeys('ENTER');