这是代号中的一部分:
string FindDestination(State q0, Event s0, IEnumerable<string[]> transitions) {
var newq = from t in transitions
where t[0] == q0.Name && t[1] == s0.Name
select t[2];
return newq.FirstOrDefault();
}
var obj = {};
function putInObject() {
obj.title = document.querySelector('[itemprop="title"]').innerText;
obj.description = document.querySelector('[itemprop="description"]').innerText;
}
casper.then(function(){
casper.wait(1000,function(){
links = this.evaluate(getItemLinks);
casper.each(links, function(self, link) {
self.thenOpen(link, function() {
this.echo(this.getTitle());
this.wait(7000, function(){
console.log("**************** \n WebPage is loaded \n ****************");
// Appearantly, The putInObject() doesn't run and "obj" remains null
casper.evaluate(putInObject);
this.echo(obj);
});
});
});
});
});
函数无法运行,即使我用{:}替换了putInObject()
:
casper.evaluate(putInObject);
但它也不起作用,并且obj被打印到像this.evaluate(function() {
obj.title = document.querySelector('[itemprop="title"]').innerText;
obj.description = document.querySelector('[itemprop="description"]').innerText;
});
这样的控制台。
然而,[object Object]
工作正常,并在控制台中打印页面标题。
以上代码的日志:
this.echo(this.getTitle());
答案 0 :(得分:1)
String line = "Field1,Field2,Field3,Field4,Field5,Field6#Field1,Field2,Field3";
String arr [] = line.split(",|#");
for (String s : arr) {
System.out.println(s);
}
就像是进入另一个与我们不同的世界的门户。 可能一个名称为page.evaluate
的对象,但它与CasperJs脚本开头声明的obj
不同。这些是不同的对象。 obj
中发生的情况会保留在page.evaluate
中 - 除非您专门请求返回一些数据。
page.evaluate