2017-09-20 2 views
1

J'ai un problème avec le sélénium en C#. Ci-dessous mon code, mais je toujours la même erreur: ne peut pas convertir « System.Drawing.Imaging.ImageFormat » à « OpenQA.Selenium.ScreenshotImageFormat »Erreur C# Selenium Chrome: impossible de convertir 'System.Drawing.Imaging.ImageFormat' en 'OpenQA.Selenium.ScreenshotImageFormat'

Comment puis-je résoudre ce problème? Des idées?

using System; 
using System.Drawing.Imaging; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Chrome; 
using System.Drawing; 
namespace Test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      IWebDriver driver = new ChromeDriver(); 
      driver.Navigate().GoToUrl("xx://xx.xx.xx"); 
      driver.FindElement(By.Id("xx")).SendKeys("xxx"); 
      driver.FindElement(By.Id("xx")).SendKeys("xxx"); 
      driver.FindElement(By.Id("xx")).Click(); 

      Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot(); 
      ss.SaveAsFile(@"C:\\test.Png", System.Drawing.Imaging.ImageFormat.Png); 

      Console.Read(); 
      Console.WriteLine("xxx"); 
     } 

    } 
} 
+0

Il est indiqué en haut de la doc donnée par seleniumhq. '[ObsoleteAttribute (" System.Drawing.Imaging.ImageFormat n'est pas pris en charge dans .NET Core, et selon qu'il est en cours de suppression de WebDriver. Veuillez convertir en ScreenshotImageFormat. ")]' – IamBatman

Répondre

3

Au lieu de System.Drawing.Imaging.ImageFormat.Png comme 2e de votre SaveAsFile param, vous devez utiliser OpenQA.Selenium.ScreenshotImageFormat.[something here]

qu'ENUM a probablement son propre format PNG.

+0

Cela fonctionne! Merci Résolution ss.SaveAsFile (@ "C: \\ test.png, OpenQA.Selenium.ScreenshotImageFormat.Jpeg) – Tomasz

+2

Vous pouvez modifier votre extension de fichier, peut avoir une incompatibilité sur la route peut-être que votre extension dit png, mais le format de fichier est en fait un jpeg. * hausse les épaules * – IamBatman

2

L'erreur était persistante, en disant:

System.Drawing.Imaging.ImageFormat is not supported. Please change format.

Puis j'ai changé le code de:

ScreenShot.SaveAsFile(FileName.ToString(), System.Drawing.Imaging.ImageFormat.Jpeg); 

Pour:

ScreenShot.SaveAsFile(FileName.ToString(), ScreenshotImageFormat.Jpeg); 

Et cela a fonctionné.