「send_keys」を実行することで要素にキーボード入力することが出来ます。
element.send_keys(:xxx)の形でxxxに特殊キー指定すると、要素に対して特殊キーを入力することができます。また、element.send_keys(:xxx,string)の形で指定された場合は、特殊キーであるxxxが押下された状態で、要素に対して文字(文字列)入力することができます。
一方、element.send_keys(string,:xxx)は要素に対して通常キー入力した後、特殊キー入力しています。具体例としては「検索テキストボックスに文字列入力後にEnterキー入力」などがあげられます。
説明
◆メソッド ・send_keys(:xxx) ◆使用形態 ・element.send_keys(:xxx,string) や element.send_keys(:xxx)や element.send_keys(string,:xxx)など ※xxxはAltやShiftなどの特殊キーを意味する ◆備考 ・テキストボックスやテキストエリアなどのHTML要素に対して、文字列入力やBackSpaceまたは Ctrlなどの特殊キーを使用する為のメソッド ◆関連項目 ・要素に入力された値をクリアする ・要素をクリックする
サンプル
require 'selenium-webdriver'
# Firefoxを起動
driver = Selenium::WebDriver.for(:firefox)
#指定したURLに遷移する
driver.get('https://www.google.co.jp')
#検索テキストボックスの要素をname属性名から取得
element = driver.find_element(:name, 'q')
#検索テキストボックスでシフトボタンを押下しながら'selenium'を入力
element.send_keys(:shift, 'selenium')
#カーソルを1文字分左にずらす
element.send_keys(:arrow_left)
#BackSpaceを1回押下し1文字分消去
element.send_keys(:backspace)
#Enterキーを押下する
element.send_keys(:enter)
※selenium version 4.1.0で動作確認をしています(ブラウザのUIや属性値などが変更された場合、実行結果が異なる可能性があります)
実行結果
特殊キー一覧
・Enterキー :element.send_keys(:enter)
・ALTキー(通常キーと組み合わせ) :element.send_keys(:alt,'f')
→上記はALT+'f'キー押下時。第2引数に通常キーを指定
・←キー :element.send_keys(:left)
・→キー :element.send_keys(:right)
・↑キー :element.send_keys(:up)
・↓キー :element.send_keys(:down)
・Ctrlキー(通常キーと組み合わせ) :element.send_keys(:control, 'a')
→上記はCtrl+'a'キー押下時。第2引数に通常キーを指定
・Deleteキー :element.send_keys(:delete)
・HOMEキー :element.send_keys(:home)
・ENDキー :element.send_keys(:end)
・ESCAPEキー :element.send_keys(:escape)
・イコール(=)入力 :element.send_keys(:equals)
・COMMANDキー :element.send_keys(:command)
→上記はMacのみ
・F1キー :element.send_keys(:f1)
・シフトキー(通常キーと組み合わせ) :element.send_keys(:shift, 'abc')
→上記はShift+'abc'押下時。第2引数に通常キーを指定
・ページダウンキー :element.send_keys(:page_down)
・ページアップキー :element.send_keys(:page_up)
・スペースキー :element.send_keys(:space)
・リターンキー :element.send_keys(:return)
・タブキー :element.send_keys(:tab)

