2013-08-13 47 views
29

Tôi đang sử dụng waitFor(). Mã này như sau:Cách tăng thời gian chờ trong CasperJS

casper.waitFor(function check() { 
    return this.evaluate(function() { 
     return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes'; 
    }); 
}, function then() { 
    console.log('Done'); 
}); 

Am nhận điều này như giao diện điều khiển đầu ra

Wait timeout of 5000ms expired, exiting. 

Làm thế nào tôi có thể tăng thời gian chờ?

EDIT: Tôi đã thay đổi mã để

casper.waitFor(function check() { 
     return this.evaluate(function() { 
      return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes'; 
     }); 
    }, function then() { 
     console.log('Done'); 
    },10000); 

Nó đem lại cho tôi những lỗi sau:

CasperError: Invalid timeout function, exiting. 
    C:/filename:1720 in _check 

Trả lời

27

Như đã nói here,

Chữ ký là

waitFor(Function testFx[, Function then, Function onTimeout, Number timeout]) 

Vì vậy, có một đối số bổ sung để xác định thời gian chờ.

casper.waitFor(function check() { 
    //... 
    }); 
}, function then() { 
    //... 
}, function timeout() { 
//... 
}, TIMEOUT_IN_MS); 
+5

Bạn cũng có thể đặt tùy chọn để tăng thời gian chờ. Đây sẽ là mặc định cho tất cả các chức năng hẹn giờ. Xem liên kết sau: [link] (http://docs.casperjs.org/en/latest/modules/casper.html#timeout) – Ryguy

+0

Vui lòng xem Chỉnh sửa. Tôi đã cập nhật mã nhưng tôi nhận được lỗi như được hiển thị trong chỉnh sửa – user2129794

+1

có, thực tế đối số thứ ba là gọi lại trênTime. Giá trị hết giờ là giá trị thứ tư. – Cybermaxs

53

Sử dụng rằng để tăng thời gian chờ của mỗi wait() chức năng: casper.options.waitTimeout = 20000; (20sec)

+0

giá trị này sẽ được sử dụng cho lệnh waitFor() và cũng chờ() tất cả trong commons @Fanch? – gumuruh

+1

@gumuruh: yes;) http://docs.casperjs.org/en/latest/modules/casper.html#waittimeout 'Thời gian chờ mặc định mặc định, chờ * chức năng gia đình.' – Fanch

1

Nếu bạn muốn tăng thời gian chờ trong khi để lại thông báo lỗi mặc định, vượt qua null như là đối số thứ ba và số mili giây để đợi làm đối số thứ tư:

casper.waitFor(function check() { 
    return this.evaluate(function() { 
     return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes'; 
    }); 
}, function then() { 
    console.log('Done'); 
}, null, 10000); 
Các vấn đề liên quan