ブラウザのタブ切り替え
653 views
この記事では、複数のタブ/ウィンドウが開かれるときのタブ/ウィンドウ切り替え方法について紹介します。
【できるようになること】
- タブ/ウィンドウの切り替え
- ShowTabs/SwichTabの設定
別タブ/ウィンドウが開かれるサイト
開かれているタブ一覧を取得
ShowTabsの実行結果は、タブの一覧が取得されます。

# ブラウザを開く +open_browser_1: action>: OpenBrowser url: 'https://tutorial.co.jp/blog/' lang: 'ja-JP' headless: true # キーを送信(新しいタブでリンクを開くショートカットキー) +send_keys_1: action>: SendKeys browser: +open_browser_1 selector: ':nth-child(5) > .col-md-7 > .post-wrapper > .post-header > .post-title > a' keys: ["Control","Enter"] ignoreError: true # 開いているタブを表示 +show_tabs_1: action>: ShowTabs browser: +send_keys_1 waitBefore: 2000
タブ/ウィンドウを切り替える
タブ/ウィンドウの切り替えには、「SwitchTab」アクションを利用します。
ここでは、3つの切り替え方法を順にご紹介します。
ShowTabsアクションを組み合わせ、タブ/ウィンドウのタイトルを指定した切り替えができます。
こちらは、スクリプトを使用します。スクリプトの詳細は、下部の「ワークフロー設定内容1」をご参照ください。
- ShowTabsアクションでタブ/ウィンドウの一覧を取得します。
- (任意)ShowTabsアクションに実行前待機時間を追加します。タブ/ウィンドウが開き切るまでの待機となります。
- 取得したタブ/ウィンドウの一覧を変数に保存します。
- タブ/ウィンドウ一覧を特定のワード・URLで検索します。(RunScript)
- 検索に一致したタブオブジェクトを、SwitchTabのタブパラメーターに指定します。

こちらは、スクリプトを使用せずに、タイトルやURLをもとにタブ/ウィンドウを切り替えます。
以下画像のような形になります。ワークフローのコード(yaml)については、下部の「ワークフロー設定内容2」をご参照ください。
※(任意)ShowTabsアクションに実行前待機時間を指定すると、指定した時間分の待機が可能です。タブ/ウィンドウが開き切るまでに時間がかかる場合に有効です。
# ブラウザを開く +open_browser_1: action>: OpenBrowser url: 'https://tutorial.co.jp/blog/' lang: 'ja-JP' headless: true # キーを送信(新しいタブでリンクを開くショートカットキー) +send_keys_1: action>: SendKeys browser: +open_browser_1 selector: ':nth-child(9) > .col-md-7 > .post-wrapper > .post-header > .post-title > a' keys: ["Control","Enter"] ignoreError: true # 開いているタブを表示 +show_tabs_1: action>: ShowTabs browser: +send_keys_1 waitBefore: 2000 # 変数に保存 +store_value_1: action>: StoreValue key: tab_obj value: +show_tabs_1 # スクリプトを実行 +run_script_1: action>: RunScript code: "let tab = tab_obj.filter(el => /オンライン体験会/.test(el.title));\nreturn tab[0];\n" # タブを切り替える +switch_tab_1: action>: SwitchTab browser: +send_keys_1 tab: +run_script_1
# ブラウザを開く +open_browser_1: action>: OpenBrowser url: 'https://tutorial.co.jp/blog/' lang: 'ja-JP' headless: true # キーを送信(新しいタブでリンクを開くショートカットキー) +send_keys_1: action>: SendKeys browser: +open_browser_1 selector: ':nth-child(5) > .col-md-7 > .post-wrapper > .post-header > .post-title > a' keys: ["Control","Enter"] ignoreError: true # 開いているタブを表示 +show_tabs_1: action>: ShowTabs browser: +send_keys_1 waitBefore: 2000 # 各要素について繰り返す +for_each_1: for_each>: tab_obj: +show_tabs_1 withIndex: tab_index _do: # オブジェクトのキーの値を取得 +get_value_with_key_1: action>: GetValueWithKey object: ${tab_obj} key: title # 比較する +compare_1: action>: Compare subject: +get_value_with_key_1 compare_with: 'オンライン体験会' method: CONTAINS not: false # 真のとき +if_1: if>: +compare_1 _do: # タブを切り替える +switch_tab_1: action>: SwitchTab browser: +send_keys_1 tab: ${tab_index} # 繰り返しを終了する +break_if_1: break_if>: +compare_1
<タブ>タブ
このページは役に立ちましたか?
サイトを見て解決しない場合は左下のチャットよりお問い合わせください。