Как программно определить установленную версию IE из скрипта - PullRequest
7 голосов
/ 21 января 2010

У нас есть автоматизированный кластер тестирования на основе селеновой сетки.

Для управления кластером я собрал набор задач Rake (Ruby), которые могут запускать, перезапускать, пинговать и останавливать узлы. Я тестирую наше приложение на нескольких браузерах, включая IE6, IE7 и IE8. Это означает, что каждый узел в кластере должен знать, какая версия IE установлена, чтобы он мог требовать правильного имени профиля селеновой сетки (например: "IE6 on Windows XP" против "IE8 on Windows Vista"), чтобы можно было писать определенные тесты против этих браузеров.

Мой вопрос :

Я бы хотел сократить здесь работу по настройке. Как программно определить, какая версия IE работает в текущей системе? Я попробовал следующую технику:

wmic product where "Vendor like '%Microsoft%'" get Name, Version

Но при этом возвращаются только версии программ, которые были установлены с помощью установщика Windows, поэтому IE не отображается в этом списке.

В идеале я хотел бы иметь возможность определить это из скрипта Rake или, по крайней мере, из-за того, что можно вызвать из скрипта Rake.

Ответы [ 2 ]

2 голосов
/ 21 января 2010

Вы можете использовать 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

Полный Источник

Получив эту информацию, вы можете передать ее в свой скрипт rake с помощью командной строки.

rake YourScript[<argument from vbscript>]

РЕДАКТИРОВАТЬ: Вы можете скопировать / вставить этот код в файл, назвать его what.vbs и использовать команду cscript для выполнения сценария.

cscript // Nologo ie_version.vbs

1 голос
/ 04 июля 2014

Попробуйте это для любой версии Windows:

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Internet Explorer"

strValueName = "Version"

oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

Wscript.Echo "Installed IE Version: " & strValue

Wscript.Echo "IE Version: " & Left(strValue,1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...