【问题标题】:How to setTimeout in mechanize ruby?如何在机械化红宝石中设置超时?
【发布时间】:2017-06-24 16:30:32
【问题描述】:

我想在 mechanize ruby​​ 中使用 setTimeout 来加载整页。

我已尝试关注。但没用

mech = Mechanize.new { |agent|
  agent.open_timeout   = 5
  agent.read_timeout   = 5
}

有什么想法吗?

【问题讨论】:

    标签: ruby settimeout mechanize


    【解决方案1】:

    显然还有一个 idle_timeout,但我不确定有什么区别或者它是否真的有效:

    mech.methods.grep /timeout=/
    #=> [:idle_timeout=, :open_timeout=, :read_timeout=]
    

    【讨论】:

      【解决方案2】:

      我猜您正在尝试使用 JavaScript 中的 setTimeout 方法,但不幸的是,Mechanize 不理解 JavaScript 并且无法真正使用它(有关更多信息,请参阅 this question)。您使用的方法与 JavaScript 中的 setTimeout 功能是分开的。使用Watir 或类似的东西你可能会成功:

      # this assumes that `browser' is a `Watir::Browser' object
      browser.execute_script("window.setTimeout(my_code, 2000)")
      

      【讨论】:

        猜你喜欢
        • 2012-09-01
        • 2012-04-28
        • 1970-01-01
        • 2015-07-27
        • 2011-01-10
        • 2012-03-03
        • 1970-01-01
        • 2013-08-12
        • 2011-01-12
        相关资源
        最近更新 更多