機能テストのスクリーンショットを撮る方法が必要です。現在、C#バインディングでSelenium 2を使用しています。目的のページが表示されることを確認するために、テストの最後にスクリーンショットを撮りたいと思います。スクリーンショットをトリガーするC#コードに組み込むことができる特定のツールはありますか?組み込みのSelenium 2ソリューションを見つけることができませんでした(見渡さずに)。
Selenium 2でスクリーンショットを作成するには、以下を実行する必要があります
driver = new FireFoxDriver(); // Should work in other Browser Drivers
driver.Navigate().GoToUrl("http://www.theautomatedtester.co.uk");
Screenshot ss = ((ITakesScreenshot) driver).GetScreenshot();
//Use it as you want now
string screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
ss.SaveAsFile("filename", ImageFormat.Png); //use any of the built in image formating
ss.ToString();//same as string screenshot = ss.AsBase64EncodedString;
IronPython Replですばやくテストしたため、このコードは機能するはずです。以下のIronPythonコードを参照してください
import clr
clr.AddReference("WebDriver.Common.dll")
clr.AddReference("WebDriver.Firefox.dll")
from OpenQA.Selenium import *
from OpenQA.Selenium.Firefox import *
driver = FirefoxDriver()
driver.Navigate().GoToUrl("http://www.theautomatedtester.co.uk")
s = driver.GetScreenshot()
s.AsBaseEncodedString
# HUGE string appears in the REPL
var driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.com");
var ss = driver.GetScreenshot();
ss.SaveAsFile("ss.png", System.Drawing.Imaging.ImageFormat.Png);
それが重要かどうかはわかりませんが、C#で書いているときにドライバーをキャストしなければならなくなりました。
何かのようなもの:
スクリーンショットss =((ITakesScreenshot)driver).GetScreenshot();
1行のコードでTakeScreenshot()拡張メソッドを使用するだけです。
IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("Your_Homepage_Url");
driver.TakeScreenshot().SaveAsFile("file_name_string", ImageFormat.Jpeg);