ruby selenium window_handles

seleniumでスクレイピングをしているとURLをクリックして要素を取得しようとした時に、windowタグが開いて要素が取得できず、
「no such window: target window already closed\nfrom unknown error」とエラーが出たときの対処法です。

この問題の解決には「window_handles」を使います。

window_handlesの使い方


ruby + selenium で target属性が「_blank」になっているaタグをクリックした後の要素を取得するには

#最後に出したwindowタグに移動する
 window = @d.window_handles.last 
 @d.switch_to.window(window)



これでタグを移動して要素を取得できます。
あとはいつも通りに要素を取得していけば大丈夫です。