Appium:Ruby:在gem中加载错误

Posted

技术标签:

【中文标题】Appium:Ruby:在gem中加载错误【英文标题】:Appium:Ruby: Load error in the gem 【发布时间】:2017-09-15 05:08:26 【问题描述】:

加载此require-relative 元素时出错。任何想法如何解决它?

我已经尝试搜索android sdk,对于require relative 中提到的以下内容,我应该放置任何文件来完成这项工作吗?>

require 'appium_lib'
require_relative './libs/adbManager'
require_relative './libs/error_handler'
require_relative './libs/android_manifest_parser'

错误:

cannot load such file -- /Users/jain/Documents/fslearning-android/Features/Support/libs/adbManager (LoadError)
/Users/jain/Documents/fslearning-android/Features/Support/hooks.rb:2:in `require_relative'
/Users/jain/Documents/fslearning-android/Features/Support/hooks.rb:2:in `<top (required)>'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/rb_support/rb_language.rb:96:in `load'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/rb_support/rb_language.rb:96:in `load_code_file'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:142:in `load_file'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:84:in `block in load_files!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:83:in `each'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:83:in `load_files!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime.rb:253:in `load_step_definitions'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime.rb:61:in `run!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/cli/main.rb:32:in `execute!'
/usr/local/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/bin/cucumber:8:in `<top (required)>'
/usr/local/bin/cucumber:22:in `load'
/usr/local/bin/cucumber:22:in `<main>'

【问题讨论】:

【参考方案1】:

您向我寻求帮助,但除了您最初发布的错误之外,我只能给您一些一般性建议,因为我对 appium 本身没有经验,而且先决条件太高而无法尝试。

你从哪里得到你正在制作的 require_relatives 的代码? 我在网上找不到太多文档。他们应该引用 gems 或 ruby​​ 文件。 对于 gem(如require 'appium_lib'),您需要满足先决条件(仅限 iO?,已安装 gem?等),对于 ruby​​ 脚本文件,您可以检查文件在文件系统中的位置,并且您最好使用文件扩展名.rb

例如require_relative './libs/adbManager.rb' 将是一个位于主脚本的子文件夹 libs 中的文件,名为 adbManager.rb

如果它是 appium 的一部分,它会是类似的东西

require 'appium_lib/adbManager'

【讨论】:

感谢您的回复,我在从 IDE 复制到此处时不知何故错过了报价。即使使用引号也是同样的错误。 我从你的回答中看到,require_relative 正在加载一个特定的文件,我想知道,上面提到的require_relative 中的文件是否是appium_lib 的一部分?对此有什么想法吗? 我知道那些是什么。这些只是引用另一个文件,从一个文件调用一个方法到另一个文件。 现在好尴尬,居然不知道这个概念。

以上是关于Appium:Ruby:在gem中加载错误的主要内容,如果未能解决你的问题,请参考以下文章

如何从文件中加载哈希?

Weechat Ruby 插件 - 尝试要求任何 gem 会导致错误

安装selenium webdriver ruby版的时候无论是线上安装,还是gem包下载下来安装都出现错误,求解决

ruby 在目录中加载多个文件并要求它们

ruby 和 irb 都不能在当前目录中加载 .rb 文件

在 Ruby 中加载“file.rb”与需要“模块”