2016-04-19 10 views
3

Wir haben mehrere Windows Server 2012-Computer in Google Cloud eingerichtet, auf denen Selenium-Tests ausgeführt werden. Sie laufen mit Mocha in NodeJS. Chrome und Firefox werden wie erwartet gestartet, ausgeführt und geschlossen, IE 11 wird jedoch nicht geschlossen. Als Ergebnis reagiert der Selenserver nicht mehr und alle Tests in Internet Explorer beginnen zu fehlschlagen. HierInternet Explorer 11 schließt nicht nach Selenium Test

ist der Code für meine vor und nach jeder Haken

// Launches browser, opens homepage, and closes the popup. 
exports.beforeEach = function(capability) { 
    driver = utils.driver.launch(capability); 
    utils.driver.open(driver); 
    utils.driver.closePopup(driver); 
} 

exports.afterEach = function() { 
    driver.quit(); 
} 

Die Fähigkeiten, die ich gesetzt haben, sind folgende

{ 
    browserName: browser, 
    version: version, 
    screenResolution: resolution, 

    requireWindowFocus: true, 
    unexpectedAlertBehaviour: "dismiss", 
    ignoreProtectedModeSettings: false, 
    ignoreZoomSetting: false, 
    nativeEvents: true, 
    handlesAlerts: true, 
    javascriptEnabled: true, 
    enableElementCacheCleanup: true, 
    cssSelectorsEnabled: true, 
    usePerProcessProxy: false, 
    elementScrollBehavior: 0, 
    enablePersistentHover: false, 
    pageLoadStrategy: "normal", 

    ie: { 
    ensureCleanSession: true, 
    forceCreateProcessApi: true, 
    browserCommandLineSwitches: "-private" 
    } 
} 

Ich habe gesucht um für ein paar Tage und haben versucht, verschiedene Kombinationen von driver.close(), driver.quit(), IE-Einstellungen und Capability-Einstellungen, aber sie haben nicht funktioniert und ich weiß wirklich nicht, was ich noch versuchen sollte. Da IE nicht schließt, ist es praktisch unmöglich, in diesem Browser zu testen. Nach ungefähr drei Tests verlangsamt sich der Server und wir müssen uns einloggen und alle Fenster manuell schließen.

Antwort

0

Wenn wir nicht in der Lage sind, den IE durch webdriver-Befehle zu schließen, wird es in diesem Moment zum Stein, also warum können wir nicht Hilfe von der Sprache nehmen, kann Java von meiner Seite sein, um es zu schließen.

try { 
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe"); 
} catch (IOException e) { 
e.printStackTrace(); 
} 

Bekannt, dass gut, Browser durch den Fahrer Befehl zu schließen, aber bis es funktioniert Ich hoffe, wir können oben versuchen. siehe this

danken Ihnen, Murali

+0

Vielen Dank! Das funktionierte, außer dass wir "iexplore.exe" und nicht IEDriverServer.exe töten mussten. – Sonny

+0

Browser wird geschlossen, aber die Sache ist, dass ich nicht in der Lage bin, meinen Code auszuführen, denn wenn ich Instanz von IE dann erstelle, holt es die URL und schließt den Browser sofort, selbst wenn ich ImplicitWait bereitgestellt habe. Können Sie mir helfen, –

+0

haben Sie iexplorer.exe in obiger Antwort verwendet. nutze es wie von Sonny erwähnt, so dass es den Browser anstatt des iedriverserver killt. –

3

Wie bereits erwähnt von @Sonny in den Kommentaren von Ihnen benötigen könnten die "iexplorer.exe" Aufgabe zu töten

Ich habe sowohl in der Pre-Build-Ereignisse:

taskkill /f /fi "pid gt 0" /im IEDriverServer.exe 
    taskkill /f /fi "pid gt 0" /im iexplore.exe 
Verwandte Themen