gpt4 book ai didi

ruby - Watir webdriver Errno::ECONNREFUSED:无法建立连接,因为目标机器主动拒绝了它。 - 连接(2)

转载 作者:数据小太阳 更新时间:2023-10-29 07:56:54 25 4
gpt4 key购买 nike

更新:

我正在运行下面的代码来执行我的示例测试用例:(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'

谁能帮我解决这个问题?

最佳答案

我无法为 test_closeVar 测试获取该异常,但是我可以为您的其他两个测试重现它。当您在关闭浏览器后尝试与浏览器交互时,您会遇到该异常。

使用 Test::Unit 时,请记住测试按字母顺序运行。因此,您的 test_closeVar 测试将在 test_gomet1test_gomet2 运行之前关闭浏览器。 test_gomet1test_gomet2 将抛出该异常,因为浏览器已关闭。

作为快速修复,您可以在测试名称中添加数字,让它们按特定顺序运行。

不过,长期的解决办法实际上是使您的测试独立,这样顺序就无关紧要了。

更新

一些观察:

  • 问题发生在使用 Selenium-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

关于ruby - Watir webdriver Errno::ECONNREFUSED:无法建立连接,因为目标机器主动拒绝了它。 - 连接(2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com