「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や属性値などが変更された場合、実行結果が異なる可能性があります)
実行結果
特殊キー一覧
・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));