2015-09-18 10 views
5

Raz na jakiś czas pojawia się wyjątek w moich testach PhantomJS selen, który zawiera tekst poniżejZrzut zrobiono wyjątek poprzez selen PhantomJS

Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken 

Tak naprawdę jest zrzut podjęto jak mówi komunikat? gdzie byłby zapisywany ten zrzut ekranu? Sprawdziłem katalog programów i nie zapisałem żadnego obrazu.

Odpowiedz

3

W moim realizacji folder jest określony w pliku App.config, tak:

<add key="ScreenShot.FolderPath" value="..\\..\\..\\TestProject\\Screenshots\\" /> 

Jest to przydatne, gdy masz uruchomiony serwer CI testów samochodowych. Więc Poke XML będzie wyglądać następująco:

<XmlPoke XmlInputPath="TestProject\App.config" 
      Query="//appSettings/add[@key='ScreenShot.FolderPath']/@value" 
      Value="$(ScreenShot.FolderPath)"/> 

i wreszcie w kodzie wskazać gdzie rzeczywiste screeny być zapisane:

var screenshotDriver = IWebDriver as ITakesScreenshot; 
if (screenshotDriver != null) 
    { 
    var screenshot = screenshotDriver.GetScreenshot(); 
    screenshot.SaveAsFile(ConfigurationManager.AppSettings["ScreenShot.FolderPath"] 
          + screenShotName, ImageFormat.Jpeg);       
    } 
Powiązane problemy