以下ソース
signage.rb
require 'chrome_remote'
# Chromeリモートデバッグプロトコルに接続
client = ChromeRemote.client
# 開かれているタブを取得し、ページタイプのタブのみをフィルタリング
targets = client.send_cmd('Target.getTargets')['targetInfos']
page_targets = targets.select { |target| target['type'] == 'page' }
# タブを順に切り替える
index = page_targets.size - 1
loop do
if index < 0
index = page_targets.size - 1 # 最初のタブに戻る
end
# タブをアクティブにする
target_id = page_targets[index]['targetId']
client.send_cmd('Target.activateTarget', targetId: target_id)
# 現在のタブのURLを出力
url = page_targets[index]['url']
puts "Switched to tab: #{url}"
index -= 1
sleep 1 # 1秒ごとに切り替え
end
用途
デジタルサイネージ的にChromeを使いたいときに一定時間で切り替える。
chrome_remote経由なので自由に操作はできる。リロードしてみたり、スクロールしてみたり。