Skip to content

Commit

Permalink
Merge remote-tracking branch 'timhudson/captureselector-zoomfactor'
Browse files Browse the repository at this point in the history
Conflicts:
	test/tests.js
  • Loading branch information
brenden committed Feb 12, 2016
2 parents 6a5027e + d3c7498 commit 658057d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
3 changes: 2 additions & 1 deletion lib/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ exports.phantom = {
, errorIfJSException: false
, cookies: []
, captureSelector: false
, zoomFactor: 1
};

// Options that are just passed to the phantom page object
exports.phantomPage = ['paperSize', 'zoomFactor', 'customHeaders', 'settings'];
exports.phantomPage = ['paperSize', 'customHeaders', 'settings'];

// Options that are callbacks for various phantom events
exports.phantomCallback = ['onAlert', 'onCallback', 'onClosing', 'onConfirm',
Expand Down
12 changes: 6 additions & 6 deletions lib/webshot.phantom.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,21 +96,21 @@ var _takeScreenshot = function(status) {
if (options.captureSelector) {

// Handle captureSelector option
page.clipRect = page.evaluate(function(selector) {
page.clipRect = page.evaluate(function(selector, zoomFactor) {
try {
var selectorClipRect =
document.querySelector(selector).getBoundingClientRect();

return {
top: selectorClipRect.top
, left: selectorClipRect.left
, width: selectorClipRect.width
, height: selectorClipRect.height
top: selectorClipRect.top * zoomFactor
, left: selectorClipRect.left * zoomFactor
, width: selectorClipRect.width * zoomFactor
, height: selectorClipRect.height * zoomFactor
};
} catch (e) {
throw new Error("Unable to fetch bounds for element " + selector);
}
}, options.captureSelector);
}, options.captureSelector, options.zoomFactor);
} else {

//Set the rectangle of the page to render
Expand Down
22 changes: 22 additions & 0 deletions test/options/zoomFactor.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,26 @@ describe('zoomFactor', function() {
});
});
});

it('creates a properly-sized page for zoomed shots that use a selector',
function(done) {

var fixture = fixtures[2];
var options = {
captureSelector: '#foo',
zoomFactor: 2
};

webshot(fixture.path, pngOutput, options, function(err) {
if (err) return done(err);

im.identify(pngOutput, function(err, features) {
if (err) return done(err);

features.width.should.equal(fixture.width * 2);
features.height.should.equal(fixture.height * 2);
done();
});
})
});
});

0 comments on commit 658057d

Please sign in to comment.