【问题标题】:CasperJS Not timing outCasperJS没有超时
【发布时间】:2014-09-01 10:02:57
【问题描述】:

我有一个 CasperJS 脚本,它执行各种功能并记录每一步后发出信号所花费的时间。这个过程有效。我遇到过我指定的自定义超时没有被调用的罕见情况。我知道这一点,因为步骤时间比超时时间长得多。我的 CasperJS 设置如下所示:

var session1 = require('casper').create({
    logLevel: 'debug',
    waitTimeout: 60000,
    userAgent: 'Mozilla/5.0'
});

函数如下所示:

session1.waitForSelector('#Selector', function () {
    this.emit('logged.in');
    this.clickLabel('Clients', 'a');
}, function timeout() {
    this.emit('genericTimeout', 'Could not log in');
});

在某些情况下会达到超时功能,有时甚至很少会达到。有什么建议吗?

【问题讨论】:

  • 在 session1 的创建中添加了“超时:180000”。这总是被称为所以作为最后的手段

标签: javascript phantomjs casperjs


【解决方案1】:

@Ka0s ,显然您的代码一切正常。只是事后的想法和对您的代码的建议...我注意到您正在使用 waitForSelector,我更喜欢使用 waitFor,因此他可以处理我职责范围内的任何其他变量。

如果您注意,另一点会很酷,您可以为它们的超时设置默认时间,此外,在每次使用中,您可以强制设置不同的超时,我非常欣赏这种方式!

这是一个例子:

// Default setting:
casper.options.timeout = 30000; // 30s for loading a page
casper.options.stepTimeout = 60000; // = 60s 1m to perform the processing ofeach step

之后,在每个代码块中,您可以根据需要强制设置不同的超时时间...

casper.waitFor (check function () {
    return this.evaluate (function () {return (__utils getElementByXPath __ ('XPATH') = null);.!});
} Then function () {
    // Then
}, Function timeout () {
    // Timeout
} 10000); // Forcing timeout 10 seconds waiting for the element on the page

与 waitForSelector 中的 waitFor 一样,请在此处查看文档 waitFor() 和此处 waitForSelector()

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多