Javascript 有没有办法带走新的文物';使用CasperJS的仪表板截图?
我试图从new relic insights仪表板中捕获一些图像,但它不起作用 该脚本在几周前就可以工作了,但现在,我只得到一些顶部带有橙色边框的空图像(比如如果没有启用JavaScript) 这是我的剧本: 它适用于登录页面,但对于其他两个捕获,它显示一个空页面 我在一个.sh文件中这样运行这个脚本Javascript 有没有办法带走新的文物';使用CasperJS的仪表板截图?,javascript,node.js,phantomjs,casperjs,newrelic,Javascript,Node.js,Phantomjs,Casperjs,Newrelic,我试图从new relic insights仪表板中捕获一些图像,但它不起作用 该脚本在几周前就可以工作了,但现在,我只得到一些顶部带有橙色边框的空图像(比如如果没有启用JavaScript) 这是我的剧本: 它适用于登录页面,但对于其他两个捕获,它显示一个空页面 我在一个.sh文件中这样运行这个脚本 PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs --cookie-file=$(pwd)/tv-cook
PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs --cookie-file=$(pwd)/tv-cookies.txt $(pwd)/capture.js --ssl-protocol=any --ignore-ssl-errors=true
我试图casper。等待(有趣,300000)
以确保它将完全加载
我试图casper.waitForSelector('.dashboard widgets',fn)
检查选择器是否已创建,但它无法工作
我知道仪表板是用Angular创建的,但我试着捕获其他用Angular创建的网站,这没关系
有人知道怎么做吗?或者有什么建议或其他软件包可以用来做这件事吗?我试过了!它起作用了!非常容易理解和阅读
var nightmare = Nightmare();
var NRdashboard = nightmare
.viewport(1920, 1080)
.useragent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36')
.goto('https://login.newrelic.com/login')
.wait()
.screenshot(content_dir + '/others/nightmare/login.png')
.type('#login_email', '***')
.type('#login_password', '***')
.screenshot(content_dir + '/others/nightmare/loginFilled.png')
.click('#login_submit')
.wait(2000)
.screenshot(content_dir + '/others/nightmare/dashboard.png')
.goto('https://insights.newrelic.com/accounts/123456')
.wait(2000)
.screenshot(content_dir + '/others/nightmare/dashboard2.png')
.run(function (err, nightmare) {
if (err) return console.log(err);
console.log('Done!');
});
CasperJS命令行的用法如下:
casperjs [options] script [script_args]
问题是,您正在使用旧版本的PhantomJS打开https站点,因此需要使用--ssl protocol=any--ignore ssl errors=true
命令行选项()。正如您在上面的“用法”中所看到的,CasperJS需要传递给PhantomJS的选项实际上并没有提供给CasperJS本身,而是提供给脚本
将两个必要的命令行选项(一个参数)移到前面:
PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs --cookie-file=$(pwd)/tv-cookies.txt --ssl-protocol=any --ignore-ssl-errors=true $(pwd)/capture.js
它并不比我第一次做的更有效。谢谢你的回答