フレームありサイトの縦長スクショをかんたんに撮る方法
リアルブラウザのWebDriverのスクリーンショット取得では、ブラウザ種別によって挙動が大きく異なる事はすごく有名な話ですよね。
フレームありサイトではIEでもFirefoxでもスクロール範囲全体のスクリーンショットが撮りにくい、これも有名な話だと思います。
エビデンス画像取得の地獄でサバイブする者としてはこれはたいへん困ります。そこで色々と試したいたら、ちょっと強引ですが抜け道っぽいのみつけました。
ダミーサイトを作ってお試し
真ん中フレームのスクロール可能な範囲をすべて取得したいけど、撮れていません。
ここで、seleniumのDimensionクラスを使って、WebDriverのウインドウサイズを実際の画面サイズより、かなり縦長にしてみます。
Dimension winSize = new Dimension(1282,2000); // かなり縦長に・・・
driver.manage().window().setSize(winSize);
すると
おお。ちょっと縦長すぎだけど撮れました!
ちなみにこれFirefoxだけで有効のようです。残念ながらIE、Chromeではウインドウサイズをバカでかくしても「そんなの無理。」って実画面サイズにしかなりません。
なんとも夢のないやつらです。
これでフレーム内のスクショ取得が少し楽になると良いですね。
さらなるリサーチを続けましょう。