2010-01-20 14 views
8

Selenyum ızgarasına dayalı otomatik bir test kümesine sahibiz.Bir komut dosyasından IE'nin yüklü sürümünü programsal olarak nasıl belirleme

Kümeyi yönetmek için, düğümleri başlatabilen, yeniden başlatabilen, ping edip durdurabilen bir Rake (Ruby) görevleri topluluğu oluşturdum. Uygulamamızı IE6, IE7 ve IE8 gibi çeşitli tarayıcılarda test ediyorum. Bu, kümedeki her düğümün, doğru selenyum ızgarası profili adını alabilmesi için IE'nin hangi sürümünün yüklü olduğunu bilmesi gerektiği anlamına gelir (örn: "IE6 on Windows XP" ve "IE8 on Windows Vista"), böylece bu tarayıcılara karşı belirli testler yazılabilir.

Sorum:

Burada yapılandırma çalışmaları azaltmak istiyorum. Geçerli sistemde IE'nin hangi sürümünün çalıştığını nasıl programlayabilirim? Aşağıdaki tekniğini denedi:

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

Ama IE bu listede görünmüyor Bunun yalnız Windows Installer ile yüklenen programların sürümlerini döndürür.

İdeal olarak bunu bir Rake betiğinin içinden veya en azından bir Rake betiğinden alınabilen bir şeyden belirleyebilmek istiyorum.

cevap

2

WMI'yi kullanabilirsiniz, bunun bir komisyon betiği olmadığını biliyorum, ancak komut dosyasını çalıştırabilir (veya bir .NET uygulaması oluşturabilir) ve sonuçları uygulamanızla besleyebilirsiniz.

Bu bir kandırmaca, ama en azından işe yarayacak. İşte tekneden bazı kodlar.

Bu bilgilere sahip olduktan sonra Source Tam

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 

, komut satırını kullanarak tırmık komut bilgi aktarır.

rake YourScript[<argument from vbscript>] 

DÜZENLEME: Bunu whatever.vbs, bir dosyaya bu kodu yapıştırın/adı kopyalamak ve senaryoyu yürütmek için CSCRIPT komutunu kullanabilirsiniz.

cscript // Nologo

+0

Başar, bu bir pencereye Ancak Wscript.Echo çıkışları çalışması için görünür. Stdout'a çıkış yapmanın kolay bir yolu var mı? – Maciek

+0

Düzenlemeleri gör, istediğin bu mu? –

+0

Teşekkürler! Ben cscript seçenekleri ile dürttüm ve ayrıca MS'in telif hakkı mesajını atmak için // Nologo ekledim. – Maciek

1

herhangi bir Windows sürümü için bu deneyin ie_version.vbs:

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) 
İlgili konular