关于ruby:Watir-webdriver – 强制firefox关闭

Watir-webdriver - force firefox to close

我是watir-webdriver的常用用户。 一个梦幻般的宝石,但我对浏览器的问题越来越多,新的关闭。 我运行一个ubuntu机器,它处理一些后台任务,通过watir webdriver启动firefox浏览器。 当计算机已经运行了几个小时,通常处理超过100个作业,然后uncloses浏览器开始成为一个问题。 他们占用了内存,最终堵塞了计算机,迫使我重新启动。

即使我做了类似的事情,问题就出现了:

1
2
3
4
5
6
7
8
begin
  b = Watir::Browser.new :firefox, :profile => 'default'
  # Goto a few pages
  b.close
rescue => e
  b.close
  raise e
end

知道我能做些什么来解决它吗? 有没有办法确保在发生异常时强制退出进程? 我怎么调试它?

我经常看到一些超时异常,说无法绑定到锁定端口或无法获得稳定的连接。

BTW ruby 1.9.3,ubuntu 12.04 watir-webdriver 0.6.1


试试这个:

1
2
3
4
5
6
begin
  b = Watir::Browser.new :firefox, :profile => 'default'
  # Goto a few pages
ensure
  b.close
end


您可能想要研究无头解决方案,例如无头宝石或Celerity。

无头宝石仍然驱动浏览器,而不是在显示器上。 然而,Celerity包含HTMLUnit,这是一个具有良好javascript支持的虚拟浏览器。 我一直在使用Celerity来运行自动化测试,它一直很强大。 主要的警告是它只是JRuby。

另一种选择是使用更精简的浏览器,例如webkit。