SyntheticsのScripted Browserでスクリプトを記載する場合、別のページにて表示された認証情報を入力するなど、まれに複数タブ(Window)を開くケースのテストを記載するユースケースがあるかと思われます。本ブログでは、そういったケースのために別タブを開いたり、タブを切り替えたりすることができるサンプルをご紹介します。
※なお、本ブログに記載のスクリプトに関しまして、確認のためお客様のアカウントにて、そのままコピーし動作確認していただいても問題ございません。また、スクリプト内記載のURLをブラウザから直接開いて内容をご確認いただくことも問題ございません。
リンクにて別タブが開かれるページの場合
HTMLのaタグにtargetを使って別タブが開かれるページの場合、次のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、リンククリック後に、getAllWindowHandles()
を使ってタブが増えたことを待ってその後、switchTo().window(handle)
で、フォーカスを新しいタブに切り替えているところになります。
また、元のタブに戻りたい場合、最初に取得したoriginalWindow
を使って、以下のように記載していただくことで元のタブに戻れます。
スクリプトから別タブを開き、操作する
前述のaタグにてtargetが指定されていない場合でもご利用いただけます。また、新規タブを開いていただく方法はいくつかございますが、本ブログでは、selenium4よりサポートされたnewWindow()を利用します。
具体的なスクリプトとしては、以下のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、$webDriver.switchTo().newWindow('tab')
を使って、新規タブを開き、フォーカスもそちらに切り替えているところになります。
なお、本ブログのスクリプトに関しては、Sleniumのドキュメント記載の内容をもとに作成しています。その他実装したいことがある場合、Seleniumのドキュメントをご参照いただくことで実装していただくことができると思われますので、Seleniumのドキュメントもご参照いただきますようお願いいたします。
이 블로그에 표현된 견해는 저자의 견해이며 반드시 New Relic의 견해를 반영하는 것은 아닙니다. 저자가 제공하는 모든 솔루션은 환경에 따라 다르며 New Relic에서 제공하는 상용 솔루션이나 지원의 일부가 아닙니다. 이 블로그 게시물과 관련된 질문 및 지원이 필요한 경우 Explorers Hub(discuss.newrelic.com)에서만 참여하십시오. 이 블로그에는 타사 사이트의 콘텐츠에 대한 링크가 포함될 수 있습니다. 이러한 링크를 제공함으로써 New Relic은 해당 사이트에서 사용할 수 있는 정보, 보기 또는 제품을 채택, 보증, 승인 또는 보증하지 않습니다.