SyntheticsのScripted Browserでスクリプトを記載する場合、別のページにて表示された認証情報を入力するなど、まれに複数タブ(Window)を開くケースのテストを記載するユースケースがあるかと思われます。本ブログでは、そういったケースのために別タブを開いたり、タブを切り替えたりすることができるサンプルをご紹介します。
※なお、本ブログに記載のスクリプトに関しまして、確認のためお客様のアカウントにて、そのままコピーし動作確認していただいても問題ございません。また、スクリプト内記載のURLをブラウザから直接開いて内容をご確認いただくことも問題ございません。
リンクにて別タブが開かれるページの場合
HTMLのaタグにtargetを使って別タブが開かれるページの場合、次のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、リンククリック後に、getAllWindowHandles()
を使ってタブが増えたことを待ってその後、switchTo().window(handle)
で、フォーカスを新しいタブに切り替えているところになります。
また、元のタブに戻りたい場合、最初に取得したoriginalWindow
を使って、以下のように記載していただくことで元のタブに戻れます。
スクリプトから別タブを開き、操作する
前述のaタグにてtargetが指定されていない場合でもご利用いただけます。また、新規タブを開いていただく方法はいくつかございますが、本ブログでは、selenium4よりサポートされたnewWindow()を利用します。
具体的なスクリプトとしては、以下のようなスクリプトにて実現していただけます。
スクリプトの説明は、スクリプト内のコメントで確認ください。なお、ポイントとしては、$webDriver.switchTo().newWindow('tab')
を使って、新規タブを開き、フォーカスもそちらに切り替えているところになります。
なお、本ブログのスクリプトに関しては、Sleniumのドキュメント記載の内容をもとに作成しています。その他実装したいことがある場合、Seleniumのドキュメントをご参照いただくことで実装していただくことができると思われますので、Seleniumのドキュメントもご参照いただきますようお願いいたします。
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.