Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法带走新的文物';使用CasperJS的仪表板截图?_Javascript_Node.js_Phantomjs_Casperjs_Newrelic - Fatal编程技术网

Javascript 有没有办法带走新的文物';使用CasperJS的仪表板截图?

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

我试图从new relic insights仪表板中捕获一些图像,但它不起作用

该脚本在几周前就可以工作了,但现在,我只得到一些顶部带有橙色边框的空图像(比如如果没有启用JavaScript)

这是我的剧本:

它适用于登录页面,但对于其他两个捕获,它显示一个空页面

我在一个.sh文件中这样运行这个脚本

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

它并不比我第一次做的更有效。谢谢你的回答