我需要一种获取功能测试屏幕截图的方法。现在,我正在使用带有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