トップページ > Selenium API(逆引き) > 【Java】sendKeys(special)

【Java】sendKeys・・・キーボード入力をする(特殊キー)

【PR】業界トップクラスの「高単価報酬」「低マージン」を実現!レバテックフリーランス

「sendKeys」を実行することで要素にキーボード入力することが出来ます。

element.sendKeys(Keys.chord(Keys.xxx))の形でxxxに特殊キー指定すると、要素に対して特殊キーを入力することができます。element.sendKeys(Keys.chord(Keys.xxx,string)) の形で指定された場合は、特殊キーであるxxxが押下された状態で、要素に対して文字(文字列)を入力することができます。

一方、element.sendKeys(Keys.chord(string, Keys.xxx)) は要素に対して通常キー入力した後、特殊キー入力しています。具体例としては「検索テキストボックスに文字列入力後にEnterキー入力」などがあげられます。

説明

◆メソッド
  ・void  sendKeys(java.lang.CharSequence... keysToSend)
◆使用形態
  ・element.sendKeys(Keys.chord(Keys.xxx,string)) または
     element.sendKeys(Keys.chord(Keys.xxx)) または
         element.sendKeys(Keys.chord(string,Keys.xxx)) 
     ※xxxはAltやShiftなどの特殊キーを意味する
◆備考
  ・テキストボックスやテキストエリアなどのHTML要素で、文字列入力や
      BackSpaceもしくはCtrlなどの特殊キーを使用する為のメソッド	
◆関連項目
  ・セレクトタグのオプションをインデックス番号から選択する
  ・セレクトタグのオプションをテキストを指定して選択する

サンプル

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class WebTest{
  public static void main(String[] args){
    //Chrome制御のためChromeDriverのパスを指定
	System.setProperty("webdriver.chrome.driver",
		                            "D:\\AutoTest\\chromedriver.exe");
	//Chromeを起動する
	WebDriver driver = new ChromeDriver();
    //指定したURLに遷移する
    driver.get("https://www.google.co.jp");
    //Googleの検索テキストボックスの要素をname属性名から取得
    WebElement element= driver.findElement(By.name("q"));
    //検索テキストボックスでシフトボタンを押下しながら"selenium"を入力
    element.sendKeys(Keys.chord(Keys.SHIFT,"selenium"));
    //カーソルを1文字分左にずらす
    element.sendKeys(Keys.chord(Keys.ARROW_LEFT));
    //BackSpaceを1回押下し1文字分消去
    element.sendKeys(Keys.chord(Keys.BACK_SPACE));
    //Enterキーを押下する
    element.sendKeys(Keys.chord(Keys.ENTER));
  }
}
※selenium version 4.1.4で動作確認をしています(ブラウザのUIや属性値などが変更された場合、実行結果が異なる可能性があります)

実行結果

special_sendKeys
 ※GoogleおよびGoogleロゴはGoogle Inc.の登録商標であり、同社の許可を得て使用しています。

特殊キー一覧

・Enterキー              :element.sendKeys(Keys.chord(Keys.ENTER));
・ALTキー(通常キーと組み合わせ)        :element.sendKeys(Keys.chord(Keys.ALT),"f");  
			                       →上記はALT+fキー押下時。第2引数に通常キーを指定
・←キー               :element.sendKeys(Keys.chord(Keys.LEFT));
・→キー               :element.sendKeys(Keys.chord(Keys.RIGHT));
・↑キー               :element.sendKeys(Keys.chord(Keys.UP));
・↓キー               :element.sendKeys(Keys.chord(Keys.DOWN));
・Ctrlキー(通常キーと組み合わせ)          :element.sendKeys(Keys.chord(Keys.CONTROL,"a")); 
			                       →上記はCtrl+aキー押下時。第2引数に通常キーを指定
・Deleteキー                                      :element.sendKeys(Keys.chord(Keys.DELETE));
・HOMEキー                                      :element.sendKeys(Keys.chord(Keys.HOME));
・ENDキー                                         :element.sendKeys(Keys.chord(Keys.END));
・ESCAPEキー                                    :element.sendKeys(Keys.chord(Keys.ESCAPE));
・イコール(=)入力			        :element.sendKeys(Keys.chord(Keys.EQUALS));
・COMMANDキー				:element.sendKeys(Keys.chord(Keys.COMMAND));   
			                                 →上記はMacのみ
・F1キー				                :element.sendKeys(Keys.chord(Keys.F1));
・シフトキー(通常キーと組み合わせ)	:element.sendKeys(Keys.chord(Keys.SHIFT,"abc"));  
			                                 →上記はShift+"abc"押下時。第2引数に通常キーを指定
・ページダウンキー		                :element.sendKeys(Keys.chord(Keys.PAGE_DOWN));
・ページアップキー		                :element.sendKeys(Keys.chord(Keys.PAGE_UP));
・スペースキー		                        :element.sendKeys(Keys.chord(Keys.SPACE));
・リターンキー				        :element.sendKeys(Keys.chord(Keys.RETURN));
・タブキー				                :element.sendKeys(Keys.chord(Keys.TAB));

Fatal error: Uncaught Google_Service_Exception: Error calling GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A138132118&start-date=7daysAgo&end-date=yesterday&metrics=ga%3Apageviews&dimensions=ga%3ApageTitle%2C+ga%3ApagePath&sort=-ga%3Apageviews&max-results=1000: (403) User does not have sufficient permissions for this profile. in /home/users/1/monda-muki/web/seleniumqref.com/google-api-php-client-1-master/src/Google/Http/REST.php:110 Stack trace: #0 /home/users/1/monda-muki/web/seleniumqref.com/google-api-php-client-1-master/src/Google/Http/REST.php(62): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client)) #1 /home/users/1/monda-muki/web/seleniumqref.com/google-api-php-client-1-master/src/Google/Task/Runner.php(174): Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request)) #2 /home/users/1/monda-muki/web/seleniumqref.com/google-api-php-client-1-master/src/Google/Http/REST.php(46): Google_Task_Runner->run() #3 /home/users/1/monda-muki/web/seleniumqref in /home/users/1/monda-muki/web/seleniumqref.com/google-api-php-client-1-master/src/Google/Http/REST.php on line 110