【问题标题】:How can i stop page loading and close browser in Ruby Watir when i takes to much time for page to load?当我需要很长时间加载页面时,如何在 Ruby Watir 中停止页面加载并关闭浏览器?
【发布时间】:2019-08-08 08:33:05
【问题描述】:

我尝试了不同的方法来延长浏览器的加载时间,但仍然给我以下错误 Net::ReadTimeout ,我想知道这是否是一种可以检测页面加载时间和之后的方法10秒自动关闭并进入下一个进程

browser.driver.manage.timeouts.implicit_wait = 40
    browser.driver.manage.timeouts.page_load = 40
    Watir.default_timeout = 40

【问题讨论】:

    标签: ruby-on-rails ruby selenium-webdriver webdriver watir


    【解决方案1】:

    当您使用 WATIR(等待元素)时,您的第一行不是必需的。当您直接使用 selenium 时,这是必要的。因为 WATIR 有它自己的计时器,它会等待 30 秒进行元素交互。

    对于第二个(页面加载),您必须使用以下行来增加或减少页面加载时间。默认超时是60秒,如果您想增加时间(例如120),那么写如下心得

     client = Selenium::WebDriver::Remote::Http::Default.new
     client.read_timeout = 120
     browser = Watir::Browser.new :firefox, http_client: client
    

    如果您想告诉驱动程序您不想等待任何页面加载,请使用以下语句

    Watir::Browser.new :firefox,page_load_strategy: 'none'
    

    如果要等待页面加载到指定时间,如果没有加载,并且要关闭浏览器,那么编写如下代码

    begin
      browser.goto 'Your Url'
    rescue Net::ReadTimeout
      browser.close rescue ''
    end
    

    【讨论】:

    • 如果我想告诉司机等待一个特定的时间,如果这个时间过去了关闭浏览器呢?
    • @AstritShuli 我已经更新了答案,你能看看那个吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多