Google Colab で Selenium の動作を録画してみる。
Google Colab で Selenium の動作を録画してみました。これで動作時にの動きを録画保存できます。
環境構築
まずは環境構築を行います。
1
2
3
4
5
6
7
8
9
10
| # @title 設定
# Selenium
# xvfb インストール
!sudo apt install ffmpeg xvfb
!pip install selenium xvfbwrapper
# ChoromeDriver
!apt-get update
!apt install chromium-chromedriver
# 日本語対応
!apt install fonts-ipafont-gothic
|
Selenium実行
環境構築がサクッとできたのでSeleniumも実行してみます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| # @title Selenium録画
!pacmd load-module module-null-sink sink_name=MySink
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import os
from datetime import date
import json
import time
from xvfbwrapper import Xvfb
import sys, getopt, time, subprocess, shlex
print('Sreencast website animation')
xvfb = Xvfb(width=720, height=720, colordepth=24)
xvfb.start()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36')
wd = webdriver.Chrome(options=chrome_options)
url = "https://twitter.com/c_a_p_engineer/status/1753985361796321397/video/1"
wd.get(url)
wd.save_screenshot("1.png")
ffmpeg_stream = 'ffmpeg -y -r 30 -f x11grab -s 720x720 -i :%d+nomouse -c:v libx264rgb -crf 15 -preset:v ultrafast -c:a pcm_s16le -af aresample=async=1:first_pts=0 ouxkt.mkv' % xvfb.new_display
args = shlex.split(ffmpeg_stream)
p = subprocess.Popen(args)
print(p)
time.sleep(30) # record for 10 secs
wd.save_screenshot("2.png")
p.kill()
wd.quit()
xvfb.stop()
|
撮影結果
スクリーンショット
撮影した動画(出力ファイルはmkvですがmp4に変換したものを載せています。
録画できました!
ただ、録音はされてないので今後の課題になります。
参考