我尝试从新的遗物洞察仪表板中捕获一些图像,但它不起作用。
该脚本几周前可以使用,但现在,我只是在顶部获得一些带有橙色边框的空白图像(就像未启用JavaScript一样)。
我的脚本是:http://pastebin.com/aiBiWXqK
它适用于登录页面,但对于其他2个捕获,它显示一个空页面。
我在.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.wait(fun, 300000)
以确保它会完全加载。
我尝试casper.waitForSelector('.dashboard-widgets', fn)
来检查选择器是否已创建,但它不起作用。
我知道仪表板是使用Angular创建的,但我尝试捕获使用Angular制作的其他网站,这没关系。
有谁知道如何制作它?或者用于执行此操作的任何建议或其他程序包?
答案 0 :(得分:1)
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!');
});
答案 1 :(得分:0)
CasperJS命令行用法如下:
- (UITableViewCell *)tableView:(UITableView *)tableViews cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
TableViewCell *cell = [tableViews dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[TableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
view.hidden = YES;
if (indexPath.row == 0){
cell.image.image = [UIImage imageNamed:@"male80.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"Phone" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if(indexPath.row == 1) {
cell.image.image = [UIImage imageNamed:@"male80.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"Mobile Phone" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if (indexPath.row == 2) {
cell.image.image = [UIImage imageNamed:@"gift41.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"E-mail" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if (indexPath.row == 3) {
cell.image.image = [UIImage imageNamed:@"gender.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"address" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if (indexPath.row == 4) {
cell.image.image = [UIImage imageNamed:@"gender.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"country" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if (indexPath.row == 5) {
cell.image.image = [UIImage imageNamed:@"gender.png"];
cell.text.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"city" attributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
}
if (indexPath.row == 6) {
cell.image.hidden = YES;
cell.text.hidden = YES;
view.hidden = NO;
[cell addSubview:view];
}
return cell;
问题是您在较旧版本的PhantomJS中打开https网站,因此您需要casperjs [options] script [script_args]
命令行选项(here's why)。正如您在上面的“用法”中所看到的,CasperJS需要传递给PhantomJS的选项实际上并没有提供给CasperJS本身,而是提供给脚本。
将两个必要的命令行选项移到前面一个参数:
--ssl-protocol=any --ignore-ssl-errors=true