LoginSignup
3
4

More than 5 years have passed since last update.

Rubyでsleniumを使ったときにハマったところ

Last updated at Posted at 2017-12-04

簡単に、ハマった箇所をまとめていく。

■ リンクを新規タブで開きたい(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を繰り返し使う場合は都度取得し直すか、処理するページを新規タブで開くなどしておく必要があった。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4