有时,我在 Selenium PhantomJS 测试中遇到异常,其中包含以下文本
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
那么截图真的像消息所说的那样被截取了吗?此屏幕截图将保存在哪里?我检查了程序目录,没有保存图像。
有时,我在 Selenium PhantomJS 测试中遇到异常,其中包含以下文本
Caused by: org.openqa.selenium.remote.ScreenshotException: Screen shot has been taken
那么截图真的像消息所说的那样被截取了吗?此屏幕截图将保存在哪里?我检查了程序目录,没有保存图像。
在我的实现中,文件夹是在文件中指定的App.config
,如下所示:
<add key="ScreenShot.FolderPath" value="..\\..\\..\\TestProject\\Screenshots\\" />
当您的CI服务器运行自动测试时,这很有帮助。所以 XML poke 将如下所示:
<XmlPoke XmlInputPath="TestProject\App.config"
Query="//appSettings/add[@key='ScreenShot.FolderPath']/@value"
Value="$(ScreenShot.FolderPath)"/>
最后在您的代码中,您指出要保存实际屏幕截图的位置:
var screenshotDriver = IWebDriver as ITakesScreenshot;
if (screenshotDriver != null)
{
var screenshot = screenshotDriver.GetScreenshot();
screenshot.SaveAsFile(ConfigurationManager.AppSettings["ScreenShot.FolderPath"]
+ screenShotName, ImageFormat.Jpeg);
}