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

2024-01-05

Updated:

我正在运行下面的代码来执行示例测试用例:(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_gomet1 and test_gomet2甚至跑。test_gomet1 and test_gomet2会抛出该异常,因为浏览器已关闭。

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

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

Update

一些观察结果:

  • 使用 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Watir webdriver Errno::ECONNREFUSED: 无法建立连接,因为目标计算机主动拒绝连接。 - 连接(2) 的相关文章

  • 不理解 Ruby ljust/rjust/center 方法

    我正在学习嵌套 我的任务是使每条新行都以缩进开头 这是我的代码 但它不起作用 nestingDepth 0 def logger description block puts Beginning description rjust nest
  • 黄瓜测试java例子?

    我想尝试使用黄瓜测试的示例应用程序 黄瓜测试可以仅使用 ruby 完成 也可以使用 java 完成 请帮我举一个示例 谢谢 您可以查看我们在我们这里编写的一个简单示例来演示 cucumber jvm https github com gph
  • 使用 ActiveRecord::Relation 时的 RSpec 匹配器

    所以这是我要测试的方法 def self by letter letter where lastname LIKE letter order lastname end 简单问一下 letter 后面的百分号到底有什么作用 跟格式化有关系吗
  • 在 Ruby 中,围绕子方法执行块的最佳方法是什么?

    我有一个父类 class Base def my method block method do EXECUTE WHATEVER S IN THE CHILD VERSION OF my method HOW TO DO end end d
  • 捆绑安装到开发

    由于某种原因 当我跑步时bundle install它安装到生产中 Your bundle is complete It was installed into RAILS ENV production Arrrghh 我如何切换回开发 No
  • 随机显示 NoMethodError:未定义的方法“空?”对于 0:Fixnum

    它在我的本地计算机上运行良好 但使用 Puma Web 服务器在 Heroku 上的rails admin 中出现以下错误 这是我使用 enumerize 的方式 enumerize date type in last date 0 beg
  • Ruby openssl 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有 Ruby 的在线文档openssl图书馆 我能找到的只是博客文章和第三方文章 而 rdoc 本
  • C 编译器无法在 Mac OS Mountain Lion 上创建可执行文件

    我几乎浏览了每一页 但所有提示都不能解决问题 我正在运行 Mountain Lion 我有 Xcode 所有最新的开发工具 最新的 GCC 等等 我正在尝试设置 rbenv 和 ruby build 一切似乎都正常 但是当我去安装 ruby
  • 实施单表继承后,Rails 路由损坏

    我已经为 person 类实现了单表继承 class Person lt ActiveRecord Base end class Teacher lt Person end class Student lt Person end class
  • JavaScript 执行 Ruby 脚本

    服务器 客户端是同一个盒子 创建一个 UI 以在本地运行 ruby 测试脚本 我想要执行 ActiveXObject 之类的东西 w new ActiveXObject WScript Shell w run test rb 文件结构如下
  • Ruby on Rails 中的垃圾收集器?

    我尝试在 Google 上搜索很多有关 Rails 垃圾收集器的信息 但没有得到可靠的答案 有谁有资源来展示如何垃圾收集是在 Rails 中实现的吗 我们怎样才能控制它呢 Rails 是一个框架 而不是一种语言 Rails 背后的语言称为
  • Array.find方法问题

    我在 ZenTest 源代码中找到这一行 result test mappings find file re ignored filename file re The test mappings and result这里都是 Array 对
  • Ruby 空白:{ :a => 1 } 比 {:a => 1} 更好吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 看看其他人的代码 在花括号块内包含额外的空格似乎很常见 这是有原因的吗 对我来说 这似乎增加了额外的击键 从而增加了丑陋 特别是当事情嵌套时 l
  • Rails 中的代码片段应该放在哪里?

    我有这个代码片段 可以为 POST 生成签名 它的细节并不重要 但我想知道的是 由于它不是与模型相关的代码块 所以它确实可以在任何地方使用 在控制器中 在模型中 在视图助手中 即使在视图中 因此 我不确定在哪里 甚至更大的问题是 一旦将其放
  • 帮助重构这个讨厌的 Ruby if/else 语句

    所以我有这个大而多毛的 if else 语句 我将跟踪号码传递给它 然后它确定它是什么类型的跟踪号码 我怎样才能简化这件事 具体来说就是想减少代码行数 if num length lt 8 tracking service false el
  • 在 Ruby 中的文件中查找并替换

    我有一个用 ruby 编写的小程序 我在这里找到了一段很好的代码 用于查找和替换文件中的某些内容 但它似乎不起作用 这是代码 usr bin env ruby DOC test txt FIND M SEP n make substitut
  • 将表列添加到 Group by 子句 - Ruby on Rails - Postgresql

    我正在尝试使用 Heroku 显然 Postgresql 对于聚合函数来说比 SQL 严格得多 当我推送到 Heroku 时 我收到一条错误消息 内容如下 关于另一个问题 https stackoverflow com questions
  • to_proc 方法在 Ruby 中意味着什么?

    我正在学习 Rails 并关注这个线程 https stackoverflow com questions 1961030 我被困住了to proc方法 我认为符号只是字符串的替代品 它们就像字符串 但在内存方面更便宜 如果我还缺少任何其他
  • 与 Array 相比,使用 Ruby NArray 有哪些优点?

    我刚刚遇到了 Ruby 的 NArray 库 请原谅我在问这个问题时的无知 与标准 Ruby Array 实现相比 使用 NArray 库有哪些优点 我已经看到 NArray 是面向数值计算的 但是看看 API 看起来好像只有一些针对数值的
  • 正则表达式检查 ruby​​ 中的字母数字字符串

    我正在尝试验证 ruby 中的字符串 任何包含空格 下划线或任何特殊字符的字符串都将无法通过验证 有效字符串应仅包含字符 a zA Z0 9 我的代码看起来像 def validate string regex a zA Z0 9 if s

随机推荐