Ruby on rails 3 在rails操作中启动Watir Webdriver
我需要从动态构建的页面获取数据,我找到的一个解决方案是Watir 下一个代码在irb中运行良好:Ruby on rails 3 在rails操作中启动Watir Webdriver,ruby-on-rails-3,watir,watir-webdriver,Ruby On Rails 3,Watir,Watir Webdriver,我需要从动态构建的页面获取数据,我找到的一个解决方案是Watir 下一个代码在irb中运行良好: require 'rubygems' require 'watir-webdriver' require 'headless' Headless.ly do browser = Watir::Browser.new :firefox browser.goto "google.com" browser.close end 如果我尝试从rails应用程序运行它,则会出现下一个问题: 档案
require 'rubygems'
require 'watir-webdriver'
require 'headless'
Headless.ly do
browser = Watir::Browser.new :firefox
browser.goto "google.com"
browser.close
end
如果我尝试从rails应用程序运行它,则会出现下一个问题:
档案:
gem 'headless'
gem 'watir-webdriver'
行动:
def test_action
Headless.ly do
browser = Watir::Browser.new(:firefox)
browser.goto "google.com"
browser.close
end
end
有下一个输出:
no such file to load -- {
"frozen": {
"app.update.auto": false,
"app.update.enabled": false,
"browser.download.manager.showWhenStarting": false,
"browser.EULA.override": true,
"browser.EULA.3.accepted": true,
"browser.link.open_external": 2,
"browser.link.open_newwindow": 2,
"browser.offline": false,
"browser.safebrowsing.enabled": false,
"browser.safebrowsing.malware.enabled": false,
"browser.search.update": false,
"browser.sessionstore.resume_from_crash": false,
"browser.shell.checkDefaultBrowser": false,
"browser.tabs.warnOnClose": false,
"browser.tabs.warnOnOpen": false,
"devtools.errorconsole.enabled": true,
"dom.disable_open_during_load": false,
"extensions.autoDisableScopes": 10,
"extensions.logging.enabled": true,
"extensions.update.enabled": false,
"extensions.update.notifyUser": false,
"network.manage-offline-status": false,
"network.http.phishy-userpass-length": 255,
"offline-apps.allow_by_default": true,
"prompts.tab_modal.enabled": false,
"security.fileuri.origin_policy": 3,
"security.fileuri.strict_origin_policy": false,
"security.warn_entering_secure": false,
"security.warn_entering_secure.show_once": false,
"security.warn_entering_weak": false,
"security.warn_entering_weak.show_once": false,
"security.warn_leaving_secure": false,
"security.warn_leaving_secure.show_once": false,
"security.warn_submit_insecure": false,
"security.warn_viewing_mixed": false,
"security.warn_viewing_mixed.show_once": false,
"signon.rememberSignons": false,
"toolkit.networkmanager.disable": true,
"toolkit.telemetry.prompted": 2,
"toolkit.telemetry.enabled": false,
"toolkit.telemetry.rejected": true
},
"mutable": {
"browser.dom.window.dump.enabled": true,
"browser.startup.page": 0,
"browser.startup.homepage": "about:blank",
"dom.max_script_run_time": 30,
"dom.report_all_js_exceptions": true,
"javascript.options.showInConsole": true,
"network.http.max-connections-per-server": 10,
"webdriver_accept_untrusted_certs": true,
"webdriver_assume_untrusted_issuer": true
}
}
问题出在哪里?我的项目与您有相同的错误 我发现这个问题是由gem“selenium webdriver”提出的 而verion应该是“2.20.0”
如果您的gem版本高于此版本,则会发生此错误只需将此代码放在初始值设定项目录中,与“watir webdriver”、“0.5.5”一起使用即可
require 'childprocess'
require 'tmpdir'
require 'fileutils'
require 'date'
require 'multi_json'
require 'selenium/webdriver/common'
module Selenium
module WebDriver
if MultiJson.respond_to?(:load)
# @api private
def self.json_load(obj)
MultiJson.decode(obj)
#MultiJson.load(obj) here was mistake
end
else
# @api private
def self.json_load(obj)
MultiJson.decode(obj)
end
end
end
end
讨论的问题
要解决此问题,您还可以尝试更新multi_json gem,如:
bundle update multi_json
对我来说,从1.0.3版升级到1.3.5版解决了这个问题