在Windows上使用Watir需要哪个Ruby版本?

3

在Windows环境下应该使用哪个版本的Ruby?

我尝试在1.9上使用Watir,但它无法工作。它可以在1.8.6上工作。

有没有建议使用哪个版本以及为什么Watir不能在1.9上工作的原因?


1
它为什么不工作?它是否报错了? - Salil
你正在使用哪个浏览器?Watir 是特定于浏览器的吗?例如,对于 Mozilla,你必须使用 firewatir - Salil
5个回答

5

Watir.com建议使用Ruby 1.8.6-26。虽然我没有尝试过,但有一个称自己与Ruby 1.9兼容的Watir分支:

http://github.com/vapir/vapir


3
我使用这个并且它有效:
>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

2
“正确”的版本并不存在。1.8.6、1.8.7和1.9.1都被官方推荐,但这并没有多大帮助!
当1.8.x的gem在Windows下无法与1.9.x兼容时,通常情况是该gem或其依赖项包含已编译的元素(一个DLL,通常以.so扩展名命名),而这个组件尚未针对mingw32进行编译,这是Ruby 1.9的标准,而1.8.6和之前的版本是使用(旧的)MS Visual C编译的。
查看watir gem,我发现它包括win32ole.so,这可能是问题所在。我不确定为什么需要这样做 - 它是Windows安装集的一部分。也许开发人员需要确保一个固定的稳定版本,因此他们强制使用特定版本而不是使用库中的版本。或者他们修复了一些问题?不知道。
除此之外,watir还依赖于win32-api和nokogiri,它们在我的计算机上都安装了mswin32版本,需要有mingw32版本才能与1.9一起使用。
我手头没有1.9实例,无法快速确定这些版本是否存在。
尝试寻找一个mingw32版本的win32ole.so(可能在[ruby-dir] / lib / ruby / 1.9 / i386-mingw32之类的位置),并将其放置在watir使用的文件中。

2
最好使用RubyInstaller提供的mingw版本的Ruby。旧的mswin32版本的Ruby被认为是遗留版本。一些gem需要从源代码编译(RedCloth是一个很好的例子),为此,您需要安装DevKit;但是,watir不需要编译任何东西-它的所有gem依赖项都预编译了mingw32扩展(nokogiri和win32-api)。
您可以使用Pik在Windows上安装多个版本的Ruby(包括JRuby和IronRuby)。安装了Pik gem之后,您可以通过发出命令如pik install ruby 1.9.1pik install jruby来轻松安装新版本的ruby。您甚至可以执行pik install devkit来为所有已安装的Ruby副本安装DevKit。文档和许多使用示例可以在这里找到。

2
为了让Watir(和FireWatir)在ruby 1.9.2上运行, 请安装devkit并按照此处列出的步骤进行操作:http://rubyinstaller.org/downloads/ GitHub上的Ruby安装程序
卸载win32-api宝石 gem install win32-api --platform=ruby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接