将屏幕尺寸设置为 PhantomJS/CasperJS
Set Screen size in PhantomJS/CasperJS
我正在自动访问网站以从中收集数据。不幸的是,该页面会检测屏幕尺寸,如果屏幕太小,则不会给我所需的页面。当 运行 来自非交互式上下文(IIS Web 应用程序)的脚本时,屏幕对象似乎 return 大小为 1024x768 像素。尽管我将视口大小设置为 1300x1000 像素,这会影响屏幕截图但不会影响网页 JavaScript.
我如何告诉 PhantomJS 或 CasperJS(我使用的是后者,但它使用的是前者)return 页面 JavaScript 中 Screen 对象的不同值?
编辑:这是 CasperJS,而不是 PhantomJS,因此它不是重复的。
下面是它如何与 CasperJS 一起工作:
// at the start of the script file
var casper = require("casper").create({
// other options here
onPageInitialized: function (page) {
page.evaluate(function () {
window.screen = {
width: 1920,
height: 1080
};
});
}
});
// script goes on here
定义函数的时候也可以这样设置:
casper.viewport(1300, 1000).then(function () {
test.assertUrlMatches(/testing\.html$/);
});
根据 official documentation,您可以使用 viewportSize 选项。
var casper = require("casper").create({
// other options here
viewportSize: {
width: 1920,
height: 1080
}
});
与每次加载页面后覆盖视口大小相比,这将是更轻量级的解决方案。
像你这样的另一个选择can see here:
casper.options.viewportSize = {width: 1600, height: 950};
我正在自动访问网站以从中收集数据。不幸的是,该页面会检测屏幕尺寸,如果屏幕太小,则不会给我所需的页面。当 运行 来自非交互式上下文(IIS Web 应用程序)的脚本时,屏幕对象似乎 return 大小为 1024x768 像素。尽管我将视口大小设置为 1300x1000 像素,这会影响屏幕截图但不会影响网页 JavaScript.
我如何告诉 PhantomJS 或 CasperJS(我使用的是后者,但它使用的是前者)return 页面 JavaScript 中 Screen 对象的不同值?
编辑:这是 CasperJS,而不是 PhantomJS,因此它不是重复的。
下面是它如何与 CasperJS 一起工作:
// at the start of the script file
var casper = require("casper").create({
// other options here
onPageInitialized: function (page) {
page.evaluate(function () {
window.screen = {
width: 1920,
height: 1080
};
});
}
});
// script goes on here
定义函数的时候也可以这样设置:
casper.viewport(1300, 1000).then(function () {
test.assertUrlMatches(/testing\.html$/);
});
根据 official documentation,您可以使用 viewportSize 选项。
var casper = require("casper").create({
// other options here
viewportSize: {
width: 1920,
height: 1080
}
});
与每次加载页面后覆盖视口大小相比,这将是更轻量级的解决方案。
像你这样的另一个选择can see here:
casper.options.viewportSize = {width: 1600, height: 950};