2017-03-12 9 views
2

Hier mein Selemium Test:Selen Screenshot Parameter ist nicht gültig

[Test] 
    public void RunStepsTest() 
    { 
     using (var driver = new InternetExplorerDriver()) 
     { 
      driver.Navigate().GoToUrl(Url); 
      ExecuteStep(driver, "start"); 
      ExecuteStep(driver, "step1"); 
      ExecuteStep(driver, "step2"); 
      ExecuteStep(driver, "finish"); 
     } 
    } 

    private void ExecuteStep(InternetExplorerDriver driver, string stepName) 
    { 
     var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
     wait.Until(x => ExpectedConditions.ElementIsVisible(By.Id(stepName))); 

     var scrrenshot = driver.GetScreenshot(); 
     scrrenshot.SaveAsFile(Path.Combine(ScreenshotDirectory, stepName + ".jpg"), ScreenshotImageFormat.Jpeg); 

     var link = driver.FindElement(By.Id(stepName)); 
     link.SendKeys(Keys.Enter); 
    } 

meisten Zeit dieser Test auf der Leitung

 scrrenshot.SaveAsFile(Path.Combine(ScreenshotDirectory, stepName + ".jpg"), ScreenshotImageFormat.Jpeg); 

mit der Meldung "Paramter ist ungültig" fehlschlägt. Was mache ich falsch?

+0

Haben Sie sich diesen Thread angesehen? (http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver) Nicht genau sicher, ob es funktioniert, aber Sie könnten versuchen, wie es in dem Thread sagt, den ich verknüpfte: 'Datei scrFile = ((TakesScreenshot) Treiber) .getScreenshotAs (OutputType.FILE); FileUtils.copyFile (scrFile, neue Datei ("c: \\ tmp \\ screenshot.png")); ' (sorry, Code-Formatierung ist so schlecht in den Kommentaren) – Dillanm

+0

@Dillanm I in TakesScreenshot Typ gefunden haben WebDriver oder WebDriver.Support dlls. –

+0

Sorry, in .NET ist es 'ITakesScreenshot' und es ist Teil der Basis' WebDriver.dll' Bibliothek – Dillanm

Antwort

2

im Internet Explorer-Treiber, es ist beabsichtigt, diesen Fehler zu werfen.

Von Github bug tracking:

Aufgrund der Einschränkungen, wie der IE Fahrer gezwungen ist, in zu arbeiten, um Full-DOM Screenshots zu nehmen, sind Screenshots nur für Browserfenster Anzeigen von HTML-Dokumenten unterstützt. Dies ist vollständig wie vorgesehen vom Treiber (unabhängig von dem Verhalten von Chrome oder Firefox). Der Treiber wird durch die Einschränkungen des IE-Browsers gezwungen. Dementsprechend schließe ich dies als "funktioniert wie vorgesehen".

Wenn Sie andere Treiber verwenden können, können Sie Firefox oder Chrome Driver versuchen, einen Screenshot zu haben.

+0

Ja, ich lese das. Aber in meinem Fall ist dies nur ein einfaches HTML-Dokument. –

0

Versuchen Sie diesen Code wie folgt aus:

Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot(); 
ss.SaveAsFile("e:\\pande", System.Drawing.Imaging.ImageFormat.Jpeg); 
+0

das hilft nicht –

Verwandte Themen