簡単に、ハマった箇所をまとめていく。
■ リンクを新規タブで開きたい(target_blankではない)
@driver.action.send_keys(:command).click(element).perform
動作としてはactionクラスに動作を覚えさせながら、
「command + クリック」と同じ動作を実現させている。
■ Action Chains(actionクラスを使って複数動作を実現する)
driver.action.send_keys(:command).click(element).perform
actionに対して、させたい動作を付け足していって、最後にperformで実行する。
これはactionクラスを使うと複数動作を実現できるもの。(shift押しながら〜とか、command押しながら〜とか)
設定するkeyは、MacやWindowsのキーボードに依存するみたい。
■ 画面のハンドルの移動
window = driver.window_handles.last # 最後に開いたタブのwindowハンドルを取得
driver.switch_to.window(window) # windowのハンドルを切り替える
新規で開いたタブは開かれても操作自体は元の画面に残っている。
操作したい画面に対してハンドルを移してやる必要がある。
■ 新規タブを閉じて元の画面にハンドルを戻す
driver.close
タブを閉じれば、元の画面に勝手にハンドルが戻る。(2タブしか開いていない場合)
■ seleniumのelement情報
ページ遷移すると取得したelement情報は変わってしまうため、複数のelementを繰り返し使う場合は都度取得し直すか、処理するページを新規タブで開くなどしておく必要があった。