Mac*_*iek 7 ruby windows scripting rake internet-explorer
我们有一个基于硒网格的自动化测试集群.
为了管理集群,我构建了一组Rake(Ruby)任务,可以启动,重启,ping和停止节点.我正在通过IE6,IE7和IE8等多种浏览器测试我们的应用程序.这意味着群集中的每个节点都必须知道安装了哪个版本的IE,以便它可以声明正确的selenium-grid配置文件名称(例如:"IE6 on Windows XP"vs. "IE8 on Windows Vista"),以便可以针对这些浏览器编写某些测试.
我的问题:
我想在这里减少配置工作.如何以编程方式确定当前系统上运行的IE版本?我尝试了以下技术:
wmic product where "Vendor like '%Microsoft%'" get Name, Version
Run Code Online (Sandbox Code Playgroud)
但这只返回随Windows Installer一起安装的程序版本,因此IE不会显示在此列表中.
理想情况下,我希望能够从Rake脚本中确定这个,或者至少可以从Rake脚本中调用.
您可以使用 WMI,我知道它不是 rake 脚本,但您可以运行该脚本(或创建 .NET 应用程序)并将结果输入到您的应用程序中。
这有点像黑客,但至少它会起作用。这是来自 technet 的一些代码。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
"\root\cimv2\Applications\MicrosoftIE")
Set colIESettings = objWMIService.ExecQuery _
("Select * from MicrosoftIE_Summary")
For Each strIESetting in colIESettings
Wscript.Echo strIESetting.Version
Next
Run Code Online (Sandbox Code Playgroud)
完整源码
获得此信息后,您可以使用命令行将信息传递到 rake 脚本。
rake YourScript[<argument from vbscript>]
Run Code Online (Sandbox Code Playgroud)
编辑:您可以将此代码复制/粘贴到文件中,将其命名为whatever.vbs,然后使用cscript命令来执行脚本。
cscript //Nologo ie_version.vbs