SyntheticsのScripted Browserでスクリプトを記載する場合、別のページにて表示された認証情報を入力するなど、まれに複数タブ(Window)を開くケースのテストを記載するユースケースがあるかと思われます。本ブログでは、そういったケースのために別タブを開いたり、タブを切り替えたりすることができるサンプルをご紹介します。
※なお、本ブログに記載のスクリプトに関しまして、確認のためお客様のアカウントにて、そのままコピーし動作確認していただいても問題ございません。また、スクリプト内記載のURLをブラウザから直接開いて内容をご確認いただくことも問題ございません。
リンクにて別タブが開かれるページの場合
HTMLのaタグにtargetを使って別タブが開かれるページの場合、次のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、リンククリック後に、getAllWindowHandles()
を使ってタブが増えたことを待ってその後、switchTo().window(handle)
で、フォーカスを新しいタブに切り替えているところになります。
また、元のタブに戻りたい場合、最初に取得したoriginalWindow
を使って、以下のように記載していただくことで元のタブに戻れます。
スクリプトから別タブを開き、操作する
前述のaタグにてtargetが指定されていない場合でもご利用いただけます。また、新規タブを開いていただく方法はいくつかございますが、本ブログでは、selenium4よりサポートされたnewWindow()を利用します。
具体的なスクリプトとしては、以下のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、$webDriver.switchTo().newWindow('tab')
を使って、新規タブを開き、フォーカスもそちらに切り替えているところになります。
なお、本ブログのスクリプトに関しては、Sleniumのドキュメント記載の内容をもとに作成しています。その他実装したいことがある場合、Seleniumのドキュメントをご参照いただくことで実装していただくことができると思われますので、Seleniumのドキュメントもご参照いただきますようお願いいたします。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.