テキスト フィールドへの特殊キーの入力

Web アプリケーションをテストする場合、Silk4J では次の記録モードを選択できます。
  • Silk Test: Silk4J ロケーターを記録します。
  • WebDriver: WebDriver ロケーターを記録します。この記録モードは、Internet Explorer に対して記録を行う場合には、サポートされません。

このトピックでは、WebDriver 記録モードを使って記録するスクリプトに、特殊キーを入力するコードを追加する方法について説明します。Silk Test 記録モードを使った特殊キーの処理についての情報は、API ドキュメントの typeKeys メソッドを参照してください。

WebDriver 記録モードでは、特殊キーをかぎ括弧で囲んで指定します。たとえば、<back_space> や <enter> のように指定します。

クラス org.openqa.selenium.Keys.java のすべての特殊キーを Silk4J では指定できます。キーの値は、大文字小文字を区別しません。

注: Mozilla Firefox 以外のすべてのサポート ブラウザーで、sendKeys メソッドを使って複数の特殊キーやキー コードを送信できます。ただし、Mozilla Firefox で動作するクロスブラウザー スクリプトを作成する場合は、sendKeys の呼び出しにつき、1 つの文字列、特殊キー、キー コードを送信することを Micro Focus では推奨しています。

例

記録時にテキスト フィールドに対して sendKeys メソッドを使用するとき、Keys パラメーターに対して、次のようなパラメーター値を指定できます。
Keys パラメーター Keys パラメーター タイプ 生成される Java コード
hello 単純な文字列
driver.findElement(By.id("login-form:email")).sendKeys("hello");
<back_space> 特殊文字
driver.findElement(By.id("login-form:email")).sendKeys(Keys.BACK_SPACE);
<control+a> コード
driver.findElement(By.id("login-form:email")).sendKeys(Keys.chord(Keys.CONTROL, "a"));

たとえば、次のような操作を記録したとします。



1 つの特殊文字またはキー コードだけを sendKeys メソッドの呼び出しで指定しているため、Mozilla Firefox を含むすべてのサポート ブラウザーでこれらの操作を再生できます。

対応する生成コード(Java)は、次のようになります。
driver.findElement(By.id("login-form:email")).sendKeys("helloo");
driver.findElement(By.id("login-form:email")).sendKeys(Keys.BACK_SPACE);
driver.findElement(By.id("login-form:email")).sendKeys(" hello");
driver.findElement(By.id("login-form:email")).sendKeys(Keys.chord(Keys.CONTROL, "a"));
driver.findElement(By.id("login-form:email")).sendKeys(Keys.BACK_SPACE);
driver.findElement(By.id("login-form:email")).sendKeys("bye");