質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

2118閲覧

rails + Capybara + poltergeist(phantomjs) で取得したキャプチャが正しくない場合がある

usually_m_i

総合スコア18

Capybara

Capybaraは、 Rubyで開発されているWebアプリケーションテストフレームワークです。Webブラウザ不要でブラウザ上のユーザー操作及びJavaScriptの挙動を自動化することができます。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/12/15 10:10

キャプチャを取得するrailsタスクを作成しました。
ブラウザでサイトを表示した時の見た目と
キャプチャで取得した画像の見た目が変わるサイトがあり困っています。
何か原因などご教授いただけると幸いです。

実装したコードは下記です。
Yahooのトップページ等のキャプチャは問題なく取得できるのですが、
試しに色々取得してみたところ、
Bingのトップページ等ではアイコンの位置が左上にずれたりします。

コードは下記になります。

require 'bundler/setup' require 'capybara/poltergeist' Bundler.require class Tasks::TaskCapture def self.execute Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, {:js_errors => false, :timeout => 1000 }) end session = Capybara::Session.new(:poltergeist) session.visit "https://www.bing.com/?scope=web&mkt=ja-JP&FORM=PRJPJA" sleep(10) session.save_screenshot "/tmp/test.png" end end

イメージ説明

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gouf

2016/12/15 12:41

ブラウザのウィンドウサイズに応じたデザインの変化が適用されている状態、ということでしょうか? * [teampoltergeist/poltergeist: A PhantomJS driver for Capybara](https://github.com/teampoltergeist/poltergeist#customization) を参照する限り、ウィンドウサイズを指定できるようなので、Capybara との連携時の指定方法を調べてみると見つかるかもしれません
usually_m_i

2016/12/16 04:52

goufさん、ご返信ありがとうございます!!ご指摘いただきました、サイズの指定を行ってみたのですが、状況に変化はありませんでした。その後、自身でも色々ためしてみたのですが、主にバックグラウンドの動画やiframe等のレンダリングが行われていないケースが多くて、PhantomJSの機能が古いのかと思い、PhantomJSのバージョンを最新にアップデートした結果、問題なく表示されたキャプチャが取得できました。当初利用していたPhantomJSのバージョンは1.9.8だったのですが、2.1.系に変えた結果収束しました。ブラウザのエミュレートなのに、最初から最新バージョンを利用しなかった自分のミスです。。。goufさん、ご迷惑をおかけして申し訳ありません。また、ご返信、大変ありがとうございました。
guest

回答1

0

自己解決

色々調査した結果、おそらくエミュレート機能が足りていない可能性を疑い、
PhantomJSのバージョンを最新に変更して解決しました。
エミュレートなんで、最初から最新使えということ尽きると思います。。。
お騒がせして申し訳ありません。。。

投稿2016/12/16 04:57

usually_m_i

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問