尝试从此网页https://weather.com/weather/radar/interactive/l/87562:4:US?layers=rwi
截取雷达我在该页面的Chrome控制台中运行document.querySelector('.modal').style="display: none;"
,以摆脱阻止雷达图像的div弹出式广告。但无论出于何种原因,PhantomJS都没有让Subaru广告消失。
Current PhantomJS screenshot
我还尝试运行document.querySelector('.close').click();
关闭页面上的广告,但是它使用控制台在Chrome中运行,但在PhantomJS中没有。
我可以在Chrome控制台中运行querySelector并删除subaru广告并截取div #imap,但无论出于何种原因它都不能在PhantomJS中运行。
我尝试在超时内移动querySelector但没有任何变化。
var page = require('webpage').create();
page.viewportSize = { width: 1280, height: 720 };
page.open('https://weather.com/weather/radar/interactive/l/87562:4:US?layers=rwi', function (status) {
page.evaluate(function() {
document.querySelector('.modal').style="display: none;"
});
setTimeout(function() {
var clipRect = page.evaluate(function(){
return document.querySelector('#imap').getBoundingClientRect();
});
page.clipRect = {
top: clipRect.top,
left: clipRect.left,
width: clipRect.width,
height: clipRect.height
};
console.log(JSON.stringify(clipRect));
page.render('imap2.png');
phantom.exit();
}, 6000);
有人能指出我在这里缺少的方向吗?
谢谢,
大卫
答案 0 :(得分:0)
我认为你应该这样做:
return document.querySelector('#imap').getBoundingClientRect();
像这样:
page.evaluate(function(){
return document.querySelector('#imap').getBoundingClientRect();
})