使用Ruby中的Watir填充text_field时的编码问题

我正在使用Watir填写一个text_field,其中包含我之前使用其他程序编写的html代码。 我正在转移的网站内容的语言是德语,因此涉及一些特殊字符,这些字符在英语字母表中不存在。 这些字符在html文件中正确显示,但是当转移到Joomla安装的text_field(我用这个程序将网站转移到Joomla)时,特殊字符无法正确显示。 由于用户的帮助很大,我已经能够解决以前的问题,并且现在使用以下方法传输内容: browser.text_field(:id => “text”).value=(open(‘my-site.html’) { |f| f.read }) 结果是,特殊字符显示如下: über => ³ber vergißt => vergi▀t wählen => wõhlen geförderter => gef÷rderter 用户猜测它与我正在使用的代码页和编码问题有关。 运行DOS:chcp导致输出850。 他试图解决这个问题的方法如下: require ‘iconv’ browser.text_field(:id => “text”).value=( Iconv.iconv(‘CP850’, ‘ISO-8859-1’, open(‘my-site.html’) { |f| f.read }) ) 不幸的是,这并没有解决问题,特殊字符现在显示为:\ x81ber =übervergi\ xE1t =vergißt,新行显示为\ n 我使用Mechanize抓取了页面,使用以下代码: auszug=page.search (‘/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]’) outputFile<<auszug 我希望你能以某种方式帮助我,因为我只是一名志愿者,在这里工作,有一点编程经验。 如果我没有在下周运行这个程序(这个编码的东西是唯一真正阻止我的东西),那么我将不得不使用copy + paste手动传输一百页:/ 感谢您花时间和所有的努力! […]

Ruby Metaprogramming:基于子实例属性动态定义方法

我正在创建一个presenter基类,它应该包装一个ActiveRecord对象。 class BasePresenter def initialize object @object = object end def method_missing(*args, &block) @object.send(*args, &block) end def self.wrap collection collection.map { |item| new item } end end 对于每个子类,我希望能够在初始化时基于子属性动态定义方法,因此ListPresenter类似于: class ListPresenter < BasePresenter end 应该使用包装的List对象的id响应list_id 。 如何在每个儿童class上定义它? 我在def initialize(object)尝试了以下内容,两者都不起作用。 如果可能的话,我宁愿避免使用基于eval的方法,因为我听到这是一种代码味道。 类方法(将方法添加到BasePresenter,而不是子类) self.class.send(:define_method, “#{object.class.name.underscore}_id”) do @object.id end 元类方法(无法访问实例变量object或@object ): class << self define_method "#{@object.class.name.underscore}_id" do @object.id end […]

Python相当于ruby的StringScanner?

是否有一个等同于ruby的StringScanner类的python类 ? 我可以一起破解某些东西,但如果已经存在,我不想重新发明轮子。

当方法名称是动态的时,如何在Ruby中调用方法?

@video = Video.new thumb = “video_thumbnail” @video_thumbnail = @video.video_thumbnail ## works fine @video_thumbnail = @video.thumb ## undefined method `thumb’ 如何动态调用video_thumbnail方法?

如何在Windows 8上运行两个GitBash实例?

所以我正在通过onemonthrails在线课程,但是我遇到了一个问题。 与使用Mac时不同,在rails服务器运行或一般情况下,无法创建单独的“选项卡”以继续工作。 所以我尝试从Windows 8中的程序/应用程序菜单(虽然另一个正在运行)打开另一个GitBash窗口,就像教程建议的那样,但没有运气。 抱歉,如果这是一个愚蠢的问题,但我错过了一些明显的东西吗?

Google表格API V4 403错误

我通过Google表格V4 REST API和Ruby从电子表格中提取数据: https://sheets.googleapis.com/v4/spreadsheets/MASTER_SPREADSHEET_ID/values/A:GH?key=GOOGLE_SERVER_KEY 之前我有这个工作,直到电子表格被删除并重新创建。 现在我在新电子表格中收到403错误。 蜜蜂: 文档声明您可以使用API​​密钥附加url,我是否解释了这个错误?

Ruby不是从mac os x开始的

当我尝试在终端上使用ruby时,没有任何反应。 我使用它的最后几天,一切正常,但现在已经不复存在了。 我安装了rvm和1.9.3版本的ruby。 当我使用ruby myscript.rb启动脚本时,它可以工作,我尝试安装rails但是当我键入gem install rails出现错误: /Users/romainberger/.rvm/rubies/ruby-1.9.3-p194/bin/gem:4: warning: Insecure world writable dir /Users/romainberger/.rvm/gems/ruby-1.9.3-p194 in PATH, mode 040777 由于没有输出,我不知道问题的来源。 有人有想法吗? 谢谢 编辑: rvm info ruby-1.9.3-p194: system: uname: “Darwin romain.home 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64” bash: “/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)” zsh: “/bin/zsh => zsh 4.3.11 […]

如何将整数转换为日期数组?

如果用户使用days_challenge: 5 & committed: [“mon”, “tue”, “wed”, “thu”, “fri”]创建挑战,那么我们如何从date_started: “2016-04-20″创建日期数组date_started: “2016-04-20″直到挑战的最后一天使用名为dates_challenged的模型方法? create_table “challenges”, force: true do |t| t.string “action” t.date “date_started” t.text “committed”, default: “—\n- sun\n- mon\n- tue\n- wed\n- thu\n- fri\n- sat\n” t.integer “days_challenged” end arrays看起来像这样: [“2016-04-20”, “2016-04-21”, “2016-04-22”, “2016-04-25”, “2016-04-26”] class Challenge = self.days_challenged 0 else self.days_challenged – ((date_started.to_date)..Date.yesterday).count do |date| committed_wdays.include? date.wday end […]

ruby:无法使用带有rspec的记录器

我正在尝试将日志记录添加到简单的rspec测试中。 我正在使用Watir在规范中驱动Chrome,这很好用。 我无法使用“Logger”库获取日志。 这是我的规格: require ‘rubygems’ require ‘watir-webdriver’ require ‘rspec’ require ‘logger’ describe ‘ui tests’ do let(:browser) { browser ||= Watir::Browser.new :chrome } let(:log) { log = Logger.new(STDOUT) log = Logger.new(‘watir.tests.log’, ‘daily’) log.level = Logger::DEBUG } before { browser.goto ‘http://translate.google.com’ } after { browser.close } context ‘simple tests’ do it ‘simple test’ do log.info(“Running simple […]

散列数组中特定键的不同出现次数

我有一个这样的数组: array = [{“id”=>”id1”, “email”=>”name@organization.com”, “sess”=>”sess1”}, {“id”=>”id2”, “email”=>”name@organization.com”, “sess”=>”sess2”}, {“id”=>”id3”, “email”=>”name@organization.com”, “sess”=>”sess2”}, {“id”=>”id4”, “email”=>”name@organization.com”, “sess”=>”sess3”}, {“id”=>”id5”, “email”=>”name@organization.com”, “sess”=>”sess2”}, {“id”=>”id6”, “email”=>”name@organization.com”, “sess”=>”sess3”}, {“id”=>”id7”, “email”=>”name@organization.com”, “sess”=>”sess2”}, {“id”=>”id8”, “email”=>”name@organization.com”, “sess”=>”sess5”}, {“id”=>”id9”, “email”=>”name@organization.com”, “sess”=>”sess2”}, {“id”=>”id10”, “email”=>”name@organization.com”, “sess”=>”sess2”},] 我怎么能以简洁的方式做一些能够不经重复地返回所有不同出现的“sess”的东西?: [“sess1”, “sess2”, “sess3”, “sess5”] 我已经开始编写一个循环来迭代所有元素,并在每次“sess”值已经存在的情况下构建一个新的哈希检查,但我确信在Ruby中必须有更好的方法。