seleniumer’s diary

「手動でExcelにスクショ貼付け」地獄からきました。テスト自動化しか望みがありません。java + selenium(since 2015/5)

フレームありサイトの縦長スクショをかんたんに撮る方法

リアルブラウザのWebDriverのスクリーンショット取得では、ブラウザ種別によって挙動が大きく異なる事はすごく有名な話ですよね。

blog.trident-qa.com

フレームありサイトではIEでもFirefoxでもスクロール範囲全体のスクリーンショットが撮りにくい、これも有名な話だと思います。
エビデンス画像取得の地獄でサバイブする者としてはこれはたいへん困ります。そこで色々と試したいたら、ちょっと強引ですが抜け道っぽいのみつけました。

ダミーサイトを作ってお試し

f:id:seleniumer:20160228192014p:plain

真ん中フレームのスクロール可能な範囲をすべて取得したいけど、撮れていません。

ここで、seleniumのDimensionクラスを使って、WebDriverのウインドウサイズを実際の画面サイズより、かなり縦長にしてみます。

Dimension winSize = new Dimension(1282,2000); // かなり縦長に・・・
driver.manage().window().setSize(winSize);

 すると

f:id:seleniumer:20160228192101p:plain

おお。ちょっと縦長すぎだけど撮れました!

ちなみにこれFirefoxだけで有効のようです。残念ながらIEChromeではウインドウサイズをバカでかくしても「そんなの無理。」って実画面サイズにしかなりません。

なんとも夢のないやつらです。

これでフレーム内のスクショ取得が少し楽になると良いですね。

さらなるリサーチを続けましょう。

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)
伊藤 望 戸田 広 沖田 邦夫 宮田 淳平 長谷川 淳 清水 直樹 Vishal Banthia
技術評論社
売り上げランキング: 10,779
 

f:id:seleniumer:20220119210234p:plain