[selenuim] target=”_blank”のリンクを開いて処理を続行する方法

photo by Enrico Capello

[selenium][warn] Link has target ‘_blank’, which is not supported in Selenium! – もぎゃろぐ
ということで、seleniumをつかって、target=”_blank”のリンクを開くことをごまかしてきたのですが、案の定、これではごまかせない話が出てきました。target=”_blank”のリンクを開いて更にその先でテストを続行したい場合にどうするか。

いろいろ考えた末、こんな手を思いつきました。

getEval s=window.document.getElementsByTagName('A');for(i=0;i<s.length;i++){s[i].target='_self';}

問題になるクリック処理の一個手前で、こんなのを実行します。
このコマンドは、JavaScriptを走らせて、全てのリンクのtargetを”_self”に書き換えてしまいます。
結果としてリンク先は同じウィンドウで開くので、そのままテストを続行することができます。