2012/09/13

[Selenium] WebDriverを使ってtarget=_blankで開いた別ウインドウにフォーカスする

最近、Seleniumを使ってる。
まだ使い始めでよくわかってないので色々メモ。

WebDriverを使ってテスト中、リンクをクリックして開いたページで処理を続けるってのはよくあることだと思うけど、そのリンクがtarget="_blank"で別ウインドウで開くとちょっと面倒
  1. //後で比較するために、現在のウインドウIDを取得  
  2. String current_window_id = driver.getWindowHandle();  
  3.   
  4. //別ウインドウで開くリンクをクリック  
  5. link_element.click();  
  6.   
  7. //開いたウインドウも含め全部のウインドウIDを取得する  
  8. java.util.Set<string> window_ids = driver.getWindowHandles();  
  9.   
  10. String new_window_id = null;  
  11.   
  12. for(String id :window_ids){  
  13.  if(!id.equals(current_window_id)){  
  14.   //現在のウインドウIDと違っていたら格納  
  15.   //最後に格納されたIDが一番新しく開かれたウインドウと判定  
  16.   new_window_id = id;  
  17.  }  
  18. }  
  19.   
  20. //最後に格納したウインドウIDにスイッチ  
  21. driver.switchTo().window(new_window_id);  
  22. //以上  
  23. </string>  
参考:Selenium2.xのちょっとした小技

0 件のコメント:

コメントを投稿