2012-10-03 111 views
1

我是watir-webdriver的常用用户。一个梦幻般的宝石,但我有一个越来越多的浏览器问题,新的关闭。我运行一个Ubuntu机器,它处理一些后台任务,通过watir webdriver启动一个Firefox浏览器。当计算机运行数小时后,通常会处理超过100个作业,然后关闭浏览器开始成为问题。他们占用记忆,最终使计算机阻塞,迫使我重新启动。Watir-webdriver - 强制firefox关闭

begin 
    b = Watir::Browser.new :firefox, :profile => 'default' 
    # Goto a few pages 
    b.close 
rescue => e 
    b.close 
    raise e 
end 

任何想法,我能做些什么来解决这个问题:

即使我做这样的事情会发生的问题?有没有办法确保在发生异常时强制退出进程?我如何调试它?

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

BTW红宝石1.9.3,Ubuntu的12.04的Watir-的webdriver 0.6.1

回答

2

试试这个:

begin 
    b = Watir::Browser.new :firefox, :profile => 'default' 
    # Goto a few pages 
ensure 
    b.close 
end 
+0

这样做和救援有什么区别? –

+0

http://stackoverflow.com/a/2192010/17469 –

0

您可能需要调查无头的解决方案,如headless gemCelerity

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

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

+0

谢谢,但我已经使用了无头的宝石,但仍统计在后台运行一个Firefox的应用。 –

+0

是的,我对服务器上的浏览器驱动程序没有太多的好运。一旦我切换到Celerity,我没有那么多问题。 –

+1

我使用PhantomJS作为无头浏览器,它几乎是功能完整的WebKit实现:http://phantomjs.org/ - 虽然不会帮助跨浏览器测试,但对单元测试很有帮助! – dain