I'm writing a simple PhantomJS app that scrapes particular pages looking for patterns. In one of these pages, the owner of the site is reading the window.screen
width/height properties and changing the URL on me (which is cancelling the loading of the rest of the page). Setting the viewportSize
changes the width/height values of the window, but not of the screen
object.
Attempt 1
My first step was disabling navigation, like so:
tab.onLoadStarted = function () {
tab.navigationLocked = true;
};
However, because this check is done in the <head>
, it is causing the load
event to fire, and sometimes the page hasn't fully loaded yet (which is causing lots of other issues).
Attempt 2
I tried overriding the screen object at the first load:
tab.onLoadStarted = function () {
tab.evaluate(function () {
window.screen = {
width: 1920,
height: 1080
};
});
};
However, that property is read-only, so setting it does nothing to change the value.
tl;dr
In PhantomJS, is there a way to override the window.screen
value to set my own screen size?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…