标签: casperjs

使用填充方法时,如何选择按下按钮?

我想填写表格,然后按一个特定的按钮.是否可以使用casper.fill方法选择按钮?

casperjs

3
推荐指数
1
解决办法
5249
查看次数

casperjs:如何在测试自己的单元测试中包含其他javascript文件?

我正在casperjs中进行一些单元测试而且卡住了:如何从测试本身包含依赖文件?包含的javascript文件可能只是一堆函数,并没有声明任何接口(module.exports = ... etc).

我知道我可以从命令行中包含

$ casperjs test --include=./my-mock.js mytest.js

但是我怎样才能包含测试本身的文件?

将以下内容放在顶部对我来说不起作用... my_mock未定义 casper.options.clientScripts = ["./my-mock.js"]; //push() does not help either

//mytest.js is below
// ------------------------------------------
casper.test.begin('ajax mock test', function suite(test) {

  my_mock.setFetchedData("bla");

  my_mock.doRequest();

  test.assertEquals( ......);

  test.done();
});

// ------------------------------------------
Run Code Online (Sandbox Code Playgroud)

使用phantomjs版本1.9.1的CasperJS版本1.1.0-DEV

dependency-injection casperjs

3
推荐指数
1
解决办法
8020
查看次数

从PhantomJS/CasperJS中的"SyntaxError:Parse error"消息中获取更多信息

我有一个很长的CasperJS脚本.当我运行它时,我得到:

phantomjs file.js    
SyntaxError: Parse error

有没有办法获得有关错误的更多信息.至少一个行号?或任何暗示?

javascript debugging syntax-error phantomjs casperjs

3
推荐指数
1
解决办法
2919
查看次数

CasperJS/PhantomJS在加载页面时窒息

我用phantomjs运行以下脚本:

var casper = require('casper').create();
var url = 'https://itunesconnect.apple.com/itc/static/login?view=1&path=%2FWebObjects%2FiTunesConnect.woa%3F'

casper.on("page.error", function(msg, trace) {
  this.echo("Error:    " + msg, "ERROR");
  this.echo("file:     " + trace[0].file, "WARNING");
  this.echo("line:     " + trace[0].line, "WARNING");
  this.echo("function: " + trace[0]["function"], "WARNING");
  errors.push(msg);
});



casper.start(url, function(){
    casper.wait(7000, function(){
        // casper.echo(casper.getHTML());
    })
})

casper.run(function() {
  if (errors.length > 0) {
    this.echo(errors.length + ' Javascript errors found', "WARNING");
  } else {
    this.echo(errors.length + ' Javascript errors found', "INFO");
  }
  casper.exit();
});
Run Code Online (Sandbox Code Playgroud)

直到几天前,我才能访问加载包含2个表单字段的iframe的页面,以允许用户登录.

现在我收到以下错误:

Error:    Error: undefined is not a constructor (evaluating …
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs casperjs

3
推荐指数
1
解决办法
335
查看次数

在PhantomJS/CasperJS中设置屏幕尺寸

我正在自动访问网站以从中收集数据.不幸的是,如果屏幕太小,该页面会检测到屏幕尺寸并且不会给我所需的页面.从非交互式上下文(IIS Web应用程序)运行脚本时,Screen对象似乎返回1024x768像素的大小.即使我将视口大小设置为1300x1000像素,这会影响屏幕截图,但不会影响网页的JavaScript.

我怎么能告诉PhantomJS或CasperJS(我使用后者但是使用前者)在页面的JavaScript中为Screen对象返回不同的值?

编辑:这是CasperJS,而不是PhantomJS,所以它不是重复的.

javascript screen-size phantomjs casperjs

3
推荐指数
1
解决办法
6914
查看次数

Casperjs相当于var dump

我想知道var_dump在casper js中相当于什么?

casperjs

2
推荐指数
1
解决办法
1491
查看次数

直接从CasperJS调用JS方法

我正在尝试使用CasperJS测试页面,特别是我想要将数据模型捅一堆.假设我有一个称为税收的基本功能,我想确保它使用正确的税率.所以我想要像:

 this.test.assert(taxes(100, 'Ontario') === 15, "Check ontario tax rate");
Run Code Online (Sandbox Code Playgroud)

而不是填写表格并查看它打印的内容.该taxes方法存在于全局范围内,因此我可以从任何地方(包括来自firebug或Chrome中的控制台)轻松地执行它.但是,在CasperJS内部工作并不是合适的范围(我想?我得到了)ReferenceError: Can't find variable: taxes.

好像我错过了一些简单的东西.

TL; DR:如何在CasperJS测试中直接执行JS的页面位?

javascript testing phantomjs casperjs

2
推荐指数
1
解决办法
7392
查看次数

casperJS失败注入jQuery

有谁知道我遇到了怎么样

[warning] [phantom] Failed injecting %s client side. 
Failed injecting includes/jquery-1.10.2.min.js client side 
Run Code Online (Sandbox Code Playgroud)

当我包括在内

'includes/jquery-1.10.2.min.js' 
Run Code Online (Sandbox Code Playgroud)

在Casper构造函数中.有人在这里发布了一个类似的问题:https://groups.google.com/forum/#!msg/casperjs/hY4ziaoXIEE/YFi8Sj4JysMJ,但我不明白他们如何在他们的解决方案中加入了casper.evaluate():

casper.then( function() {
this.evaluate(function($) {
console.log($('title').text());
}
}); 
Run Code Online (Sandbox Code Playgroud)

javascript jquery phantomjs casperjs

2
推荐指数
1
解决办法
9231
查看次数

casperjs/phantom.js可以在Amazon EC2服务器上运行吗?

我已经设法在我的计算机上构建和运行脚本.

如果我希望它在服务器上运行怎么办?我希望能够将请求发送到服务器并使用CasperJS处理它们.

我想在常规的Web服务器上,这样的事情是可能的.

在亚马逊的EC2上有可能吗?

有没有其他Web服务器托管解决方案允许这样的事情?

amazon-ec2 phantomjs casperjs

2
推荐指数
1
解决办法
1690
查看次数

当我运行脚本时,如何防止slimerjs浏览器打开?

这与视口无关.视口没问题.一个是屏幕的视口大小,宽度和高度,另一个是图形界面浏览器(窗口),当你运行casperjs test.js --engine = slimerjs时会打开它.

当我运行casperjs test.js --engine = slimerjs时,浏览器打开是正常的,对于测试目的非常有用.但是当我停止测试并希望做更大的事情时,我不希望浏览器窗口打开10次或100次.

我已经阅读了一段时间,在文档,谷歌或这里找不到任何内容.

如果这是可能的,抛出命令,我将非常感激.非常感谢你.

casperjs slimerjs

2
推荐指数
1
解决办法
425
查看次数