使用Watir-Webdriver测试已打开浏览器

我不想通过@browser = Watir :: Browser.new(:ie)打开一个新的浏览器,但我想使用Watir-Webdriver手动打开浏览器。 我该怎么办? 我认为它可能类似于这个浏览器(:title =>“浏览器标题”)。text_field(:id =>’Field Id’)。set’abc’ 好像我需要创建一个浏览器类的对象来工作..请指导我?

如何在Thinking Sphinx搜索中添加条件“IS NOT NULL”

我正在使用Thinking Sphinx进行全文搜索,关注此video 。 我想做以下事情: @articles = Article.search(params[:search], :conditions => “published_at IS NOT NULL”, :order => :created_at) 问题是这不起作用。 似乎搜索方法只接受作为哈希的条件。 我尝试了几种方法,但我对如何将“published_at IS NOT NULL”表示为哈希表示无能为力……

是否有ruby的命令行框架?

那么,有web框架,有GUI框架,我只是想知道是否有ruby的控制台/命令行框架? 具体来说,我希望能够: 有一个特定的视图,其中我可以选项卡到不同的输入段。 就像你可以在网页上使用表单一样。 我想通常的控制台快捷方式工作(ctr-k,ctr-a,ctr-e等) 如果光标位于某个输入位置,有时我希望它响应单个按键事件,而不是我必须输入文本然后按回车键。 不必是一个统一的框架。 但我注意到在ruby中编写控制台应用程序似乎有些麻烦。 是否有任何工具可以使这更容易?

是否仍然建议使用Minitest测试Rails 4中的路由?

在Rails 3中,当在MiniTest中编写function测试时,我习惯于测试路由而不是测试我的控制器操作。 我从Rails测试指南中得到了这个想法- 第9节:测试路由 。 但是,在将我的应用程序升级到Rails 4之后,我注意到如果我没有使用一组适当的参数提供get|patch|post|delete方法,那么控制器操作测试本身已经开始涉及未知路由。 例如,给定路线: # config/routes.rb namespace “api” do namespace “v2”, defaults: { format: :json } do resources :users do resources :posts do resources :comments end end end end 和function测试: # test/controllers/api/v2/comments_controller_test.rb describe Api::V2::CommentsController it “does something” do get :index end end 在Rails 3中,上述方法可行。 但在Rails 4中,我收到了URL生成错误: ActionController :: UrlGenerationError:没有路由匹配{:action =>“index”,:controller =>“api […]

在运行rake任务时如何跳过加载Rails初始值设定项?

我的rails应用程序有一个网站爬虫,可以在config/initializers程序中的rails初始化程序中加载爬网程序使用的身份validation凭据。 初始化程序通过调用SiteLogin模型中的模型方法来加载身份validation。 当我运行rake db:migrate以创建SiteLogin模型表时,它会失败,因为初始化程序期望数据库表已经存在。 我可以简单地在我的初始化程序中注释掉代码,运行迁移来创建表,然后取消注释初始化程序代码,而不用担心问题。 问题是,我正在使用Capistrano进行部署,这意味着我必须先部署而不使用初始化代码来运行迁移,然后再使用初始化代码进行部署。 有没有更好的方法来做到这一点,或者在这种情况下我的方法是完全错误的。 这里有一些代码示例可以更好地解释我的情况: # config/initializers/site_crawler_init.rb SiteCrawler.setup do |config| config.hostname = “www.example.com” end # model/site_crawler.rb class SiteCrawler … class << self attr_accessor :configuration def setup self.configuration ||= Configuration.new yield(configuration) end end class Configuration attr_accessor :hostname, :login_credentials def initialize @login_credentials = SiteLogin.admin_user … end end end

ruby中的TOPLEVEL_BINDING是什么?

它不等于主线程的binding ,这个顶层范围是什么? 这个范围与主线程的binding有什么不同? > ruby -e ‘puts TOPLEVEL_BINDING === binding’ false

对于2.4MB XML文件,您会推荐哪个Ruby XML库?

我有一个2.4 MB的XML文件,从Microsoft Project导出(嘿,我是这里的受害者!),我要求我提取重新呈现的某些细节。 忽略请求的智能或其他方面,我应该首先从Ruby的角度尝试哪个库? 我知道以下内容(没有特别的顺序): REXML Chilkat Ruby XML库 hpricot XML 的libxml 我更喜欢打包成Rubygem的东西,我怀疑Chilkat库不是。 性能不是一个主要问题 – 我不认为每天需要运行一次以上(每周一次更有可能)。 我对那些与XML相关的东西一样容易使用的东西更感兴趣。 编辑:我尝试了gem的: hpricot是一个国家英里,最简单。 例如,要在此XML中提取SaveVersion标记的内容(保存在名为’test.xml’的文件中) 12 采取这样的事情: doc = Hpricot.XML(open(‘test.xml’)) version = (doc/:Project/:SaveVersion).first.inner_html hpricot似乎对名称空间相对漠不关心,在这个例子中很好:只有一个,但可能是复杂文档的问题。 由于hpricot也非常慢,我宁愿想象这将是一个解决自己的问题。 libxml-ruby的速度提高了一个数量级,了解命名空间(我需要花费几个小时来解决这个问题)并且完全接近XML金属 – XPath查询和所有其他内容都在那里。 如果像我一样,只有在极端胁迫的条件下才能打开XML文档,这不一定是好事。 帮助器模块主要用于提供有效处理默认命名空间的示例。 这大致是我最终得到的结论(我不以任何方式断言它的美丽,正确性或其他价值,它就在我现在的位置): xml_parser = XML::Parser.new xml_parser.string = File.read(path) doc = xml_parser.parse @root = doc.root @scopes = { :in_node => ”, :in_root […]

使用Ruby,如何将所有数组值转换为给定类型?

我需要将fixnums转换为字符串。 我的解决方案是: arr.map {|a| a.to_s} 有没有更好的办法?

在Ruby中,模块中定义的类如何知道模块的常量?

我试图理解模块中定义的类如何知道模块的常量。 这是我的意思的一个例子: module Car class Wheel end class Seat p Wheel # Car::Wheel end end 我知道这很明显,但由于Wheel在Seat的层次结构中无处可去,我不明白它是如何访问它的。

如何使用给定值“推进”记录?

我正在使用Ruby on Rails 3.2.9和MySQL。 我有一个带有user_id属性的Article模型(此属性表示外键 – 用于关联作者用户的id ),我想检索为给定作者“订购”的文章。 也就是说,鉴于我有以下记录: … 当我查找为id 1 ( user_id = 1 )的作者订购的文章时,应该按照以下顺序对退回的文章进行排序: … 换句话说,我希望检索所有文章,但是使用这个“优先级”进行排序 : 由给定作者创建的文章首先返回,然后是所有其他文章 (也就是说,我想“推进”由鉴于作者)。 我该怎么做? 注意 :我正在寻找Ruby on Rails实现,可能通过order方法。