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

Web アプリケーションをテストする場合、Silk4J では次の記録モードを選択できます。
  • Silk TestSilk4J ロケーターを記録します。
  • 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");