的Watir webdriver的变量Errno :: ECONNREFUSED:无连接可以作出,

2019-09-19 22:31发布

更新:

我运行下面的代码来执行我的样本测试案例:(Windows 7中的Watir 3.0.0,的Watir-的webdriver-0.6.1)

require "watir-webdriver"
require 'test/unit'

class Teste1    
    $var = Watir::Browser.new :chrome       
    def met1
        $var.goto 'google.com'
        $var.text_field(:name, "q").set 'sample'
        $var.button(:name =>'btnG').click
    end     
end

class Teste2 < Test::Unit::TestCase 
    $test = Teste1.new
    def test_gomet1
        $test.met1()
    end     
end

浏览器打开,但脚本引发以下错误:

test_gomet1(Teste2):
Errno::ECONNREFUSED: No connection could be made because the target machine actively refused it. - connect(2)
   C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:82:in `response_for'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:38:in `request'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:598:in `raw_execute'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:576:in `execute'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:99:in `get'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/navigation.rb:14:in `to'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/browser.rb:63:in `goto'
maisum.rb:11:in `met1'
maisum.rb:21:in `test_gomet1'

谁能帮我一下吗?

Answer 1:

我不能让那个异常的test_closeVar测试,不过,我可以重现你的其他两个测试。 当你尝试它已被关闭后与浏览器进行交互你得到这个异常。

当使用测试::单位,请记住,在字母顺序运行测试。 因此,你的test_closeVar测试将关闭浏览器之前test_gomet1test_gomet2甚至可以运行。 test_gomet1test_gomet2因为关闭浏览器将抛出该异常。

作为速战速决,你可以添加数字到测试的名称,让他们在一个特定的顺序运行。

长期修复虽然是真的,让您的测试,独立,这样顺序并不重要。

更新

一对夫妇的意见:

  • 该问题时使用硒webdriver的,所以没有一个的Watir-webdriver的具体问题。
  • 该脚本运行在Firefox罚款,所以它可能是一个chromedriver具体问题。

解决方法:这似乎是Chrome浏览器不喜欢的测试案例外被宣布。 我不明白为什么,但速战速决正在申报浏览器在测试用例的设置。 如果您想使用相同的浏览器为每个测试,你可以声明,如果它不存在。

下面将运行(虽然我建议清除它,以减少全局变量的使用):

class Teste1    
    def met1
        $var.goto 'google.com'
        $var.text_field(:name, "q").set 'sample'
        $var.button(:name =>'btnG').click       
    end     
end

class Teste2 < Test::Unit::TestCase 
    def setup()
        unless defined?($var)
            $var = Watir::Browser.new :chrome       
        end
        $test = Teste1.new()
    end

    def test_gomet1
        $test.met1()
    end     
end


文章来源: Watir webdriver Errno::ECONNREFUSED: No connection could be made because the target machine actively refused it. - connect(2)