2016-05-02 8 views
0

私は、ページのスクリーンショットを取り、イメージの日付と時刻の形式を保存するクラスを持っています。しかし、このメソッドをクラス外で呼び出すと、スクリーンショットを撮って自分のコンソールに印刷する名前を取得する方法を理解できません。これは私がスクリーンショットを実行し、私のユーティリティクラスです:スクリーンショット名を取得する方法

public class Utility 
{   
    public static void TakeScreenshot() 
    { 
     String now = DateTime.Now.ToString("MM-dd-yyy hh-mm tt "); 
     try 
     { 
      Screenshot ss = ((ITakesScreenshot)Driver.Instance).GetScreenshot(); 
      ss.SaveAsFile(@".\Screenshots\"+now+"Screenshot.png", System.Drawing.Imaging.ImageFormat.Png); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
      throw; 
     } 
    } 
} 

今私はここに、この方法では、私のスクリーンショットクラスを呼び出すことができますが、どのように私は新しい作成したスクリーンショットの名前を得ることができますか?

[Test] 
public void ScreenshotTest() 
{ 
    Utility.TakeScreenshot(); //Here I can perform screenshot but how can I grab screenshot name 
    Console.Write("");  // So I can print here 
} 

答えて

0

あなたは、voidを返す代わりにあなたの方法を変更することができます文字列を返すようにして、あなたの方法の終わりreturn ssName; を使用し、その意志であなただけの撮影したスクリーンショット

string ssName= now+"Screenshot.png"; 
      Screenshot ss = ((ITakesScreenshot)Driver.Instance).GetScreenshot(); 
      ss.SaveAsFile(@".\Screenshots\"+now+"Screenshot.png", System.Drawing.Imaging.ImageFormat.Png); 

の名前を返しますあなたのメソッドからの戻り値として名前を得ることができます

String ssName= Utility.TakeScreenshot(); 
    Console.Write("ssName"); 
0

これはCsharlsの答えと同じです。ただ、説明..

ユーティリティクラス

public class Utility 
{ 
    public static string TakeScreenshot() 
    { 
     String now = DateTime.Now.ToString("MM-dd-yyy hh-mm tt "); 
     string FileName = now + "Screenshot.png"; 
     try 
     { 
      Screenshot ss = ((ITakesScreenshot)Driver.Instance).GetScreenshot(); 
      ss.SaveAsFile(@".\Screenshots\" + FileName, System.Drawing.Imaging.ImageFormat.Png); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
      throw; 
     } 
     return FileName; 
    } 
} 

コール場所

[Test] 
    public void ScreenshotTest() 
    { 
     string FileName; 
     FileName = Utility.TakeScreenshot(); //Here I can perform screenshot but how can I grab screenshot name 
     Console.Write(FileName);  // So I can print here 
    } 
関連する問題