LoginSignup
0
0

More than 1 year has passed since last update.

Selenide(Java)で新規に開くwindowにフォーカスを切り替える

Last updated at Posted at 2021-06-03

はじめに

E2Eテスト自動化をした際に、新規windowが開くようなサイトで新規windowにフォーカスが移らずエラーになる事が何度かあったので、その際に安定化させるためにやった事を備忘録として残しておく。

  • java : 8以上

新規に開くwindowにフォーカスを切り替える

SwitchWindowSample.java
public HogePage openWindow(){
   Set<String> beforeHandles = WebDriverRunner.getWebDriver().getHandles();

   Selenide.$("#btn").click();
   Selenide.sleep(500); // 安定させるためにどうしても明示的にsleepを入れたりしないとダメな事もある

   Set<String> afterHandles = WebDriverRunner.getWebDriver().getHandles();

   afterHandles.removeAll(beforeHandles); // Setの中身から新規windowのhandleを取得するために被っているhandleは削除
   String handle = afterHandles.stream().findFirst().get();
   Selenide.switchTo().window(handle); // ここで明示的にwindowを切り替える

   return Selenide.open(HogePage.class);
}

※上記ではわざとSelenide.としているが普通はimportで書いてきれいにするのがいいと思われる。

参考文献

0
0
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
0
0