Selenium Webdriverで簡易的なブラウザテストを行いました
1500ページ弱のキャプチャが必要だったので、だいぶ捗りました
やりたいこと
- 対象URLをブラウズしてキャプチャを取得する
事前準備
同一ディレクトリに下記を配置します。
- url.txt (テスト対象URL)
- web_test.py (実行スクリプト)
- images/ (画像格納フォルダ)
テスト対象URL一覧作成(url.txt)
basic認証が面倒だったので、URLに直で書きました
下記のように改行区切りで一覧を作成します
https://id:password@テスト対象DNS/
https://id:password@テスト対象DNS/about/
スクリプトの実行
動作環境
$ pip3 list
Package Version
---------- -------
Pillow 5.3.0
pip 10.0.1
selenium 3.14.1
$ python3 -V
Python 3.7.0
web_test.py 実行
from selenium import webdriver
from PIL import Image
import time
# Webdriver
browser = webdriver.Chrome(executable_path='/Library/Frameworks/Python.framework/Versions/3.7/selenium/chromedriver')
# url一覧を読み込ませる
f = open('url.txt')
urlList = f.read()
f.close()
urls = urlList.split('\n')
count = 1
for url in urls:
# コンソールに対象URLを表示
targetUrl = str(count) + ":" + str(url)
print(targetUrl)
# 対象urlをブラウズ
browser.get(url)
time.sleep(3)
# 画面キャプチャを取得
imagefile = "images/dev_test_" + str(count) + ".png"
browser.save_screenshot(imagefile);
time.sleep(3)
count += 1
キャプチャの取得には、Python Imaging Library (PIL)を使いました
images/配下にdev_test_(nunmber).pngで画像が入っていきます
課題
ページサイズによっては画像が見切れてしまう。フルスクリーンで画像を取得するように修正するべき
スクリプト起動後、最初にブラウザでUserAgentを切り替えればスマホビューでもテストを行うことができますが、コードでの切り替え方法を模索中