thenEvaluate()是否以与evaluate()相同的方式返回
Does thenEvaluate() return in the same way as evaluate()?
所以我知道我可以使用return…将数据从window
返回到casper。。。
casper.evaluate(function() {
return 'foobar';
}, {});
如何使用thenEvaluate()
实现相同的功能?
您不能从casper.thenEvaluate
返回任何内容。它将被忽略。您需要将其拆分为casper.then
和casper.evaluate
。请参阅此问题以了解类似内容。
casper.thenEvaluate
是一个异步步进函数,就像所有其他then*
和wait*
函数一样。从异步函数返回有用的内容是不可能的。你最可能想要的是:
var something;
casper.start(url).then(function(){
something = this.evaluate(function(){
return 'foobar';
});
this.click("someSelector");
}).then(function(){
// do something with "something" on the new page
});
我怀疑你以后不会问是否不想使用something
。所有步骤函数都返回初始的casper
对象,这样就可以像上面的例子一样用promise语法编写脚本。
相关文章:
- 当用户返回 UC 浏览器时,如何以编程方式禁用缓存
- 从包含在for循环中的递归返回值的正确方式
- 这是显示javascript函数返回值的最佳方式吗
- React 和 HTML Select-component 返回 String 而不是 Integer 的最佳方式
- Javascript:调整base64图像的大小并以非异步方式返回字符串
- Jquery 返回元素的 .width() 取决于元素的找到方式
- thenEvaluate()是否以与evaluate()相同的方式返回
- 从以另一种方式编写的输入中返回一个字符串
- 什么'返回Obj.key1.key2..keyN的最佳方式
- 使用C#以编程方式返回Javascript管理的cookie
- 返回输入值的最佳方式
- JS对象toString()返回constructor.name和我无法以任何其他方式检索的数据
- 对嵌套数组进行排序的最佳方式(返回值与sort&math.max)
- MVC3控制器操作以编程方式返回一个失败的发布请求
- 以无限滚动的方式返回到相同的位置
- 使用JQuery以不可见的方式调用URL并返回成功/错误标志
- 从javascript对象返回多个变量的正确方式
- 使用递归从函数返回数组的最佳方式是什么
- 通过链接返回doPostBack的可能方式
- 对于多个请求,jQuery数据属性的返回方式不同