2017-10-05 11 views
1

Javascriptで一連のコンテンツ(スライドショー)を読み込むページのスクリーンショットを撮ろうとしています。 Firefox Devtoolsで個々のアイテムのスクリーンショットを撮ることができます。しかし手でそうするのは面倒です。私はいくつかのオプション -Firefox Developer Toolsで複数スクリーンショット

  1. と考えることができます

    は、ループ内で「スクリーンショット」コマンドを実行し、次のコンテンツをロードするために、各ループ内でJS関数を呼び出します。しかし、私は、開発ツールをスクリプティングするか、またはJS関数をその中から呼び出すためのドキュメンテーションを見つけることはできません。

  2. ページ上でJSスクリプトを実行すると、間隔を置いて内容が読み込まれ、devtoolsを呼び出すたびにスクリーンショットが表示されます。しかし、WebページのJSからdevtoolsを呼び出す際のドキュメントは見つかりません。

  3. Devtoolsは、ページイベントに応答してスクリーンショットを取得しますか?しかし、私はこれに関する文書も見つけることができません。

どうすればよいですか?

答えて

2

最初の質問は、プログラミングされた方法でjavascriptでスクリーンショットを撮る方法です。 selenium Webdriverを使用して、特定のブラウザの開発者ツールをスクリプト化するのではなく、ブラウザを操作します。

フレームワークとしてWebdriverJSを使用すると、Webdriver自体に必要なものをスクリプトすることができます。

あなたの2番目の質問は、どのようにスクリプトFF devのツールに、次のとおりです。 - 私の側からノーの答えを -

0

私が代わりにFirefoxのデベロッパーツールを口論しようとしているのwebdriverを使用する2番目のラルフRの勧告ます。

低速ローカルカルーセルでWebページに移動し、要求したイメージが完全に読み込まれるとすぐにスクリーンショットを撮るwebdriverjsスクリプトです(このカルーセルで、CSS opacityが1になるまで待つように指示します) 。あなたはあなたが持っている多くのスライド画像だけでこれをループすることができます。

var webdriver = require('selenium-webdriver'); 
var By = webdriver.By; 
var until = webdriver.until; 
var fs = require("fs"); 
var driver = new webdriver.Builder().forBrowser("chrome").build(); 

//Go to website 
driver.get("http://output.jsbin.com/cerutusihe"); 

//Tell webdriver to wait until the opacity is 1 
driver.wait(function(){ 
    //first store the element you want to find in a variable. 
    var theEl = driver.findElement(By.css(".mySlides:nth-child(1)")); 
    //return the css value (it can be any value you like), then return a boolean (that the 'result' of the getCssValue request equals 1) 
    return theEl.getCssValue('opacity').then(function(result){ 
    return result == 1; 
    }) 
}, 60000) //specify a wait of 60 seconds. 

//call webdriver's takeScreenshot method. 
driver.takeScreenshot().then(function(data) { 
    //use the node file system module 'fs' to write the file to your disk. In this case, it writes it to the root directory of my webdriver project. 
    fs.writeFileSync("pic2.png", data, 'base64'); 
}); 
関連する問題