在服务器上存储快照

时间:2014-05-16 15:37:30

标签: java selenium jenkins selenium-webdriver

WebDriver driver = new FirefoxDriver();

driver.get("http://www.google.com/");

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));

使用此代码使用selenium web-driver拍摄快照。此代码仅在我的PC上本地存储快照。如果我想从Jenkins自动运行它,有没有办法将快照存储在其他地方,这样如果有人通过Jenkins或本地从他们的PC运行它,他们就不必更改链接((“c:\ tmp \ screenshot.png“)每一次。

1 个答案:

答案 0 :(得分:0)

您可以使输出文件的位置由设置控制 - 可以是运行此代码的工具的命令行参数(如果可以修改),也可以是您可以从中读取的环境变量以上代码部分。您还可以拥有一个始终存在的默认位置,并且应该像用户的主目录一样可写,而不是c:\ tmp的绝对路径。

在jenkins,我会有一个步骤(在一个蚂蚁脚本,shell脚本或诸如此类的东西)创建一个名为&#34的截图;截图"在$ WORKSPACE下面,然后通过上面建议的方法之一告诉工具将运行关于该位置的代码。如果你想让截图成为作业输出的一部分,这也很方便。

此外,除非你真的只需要最新的文件(或者下游代码使用屏幕截图并期望具体名称),否则我会在上面的代码中为png引入时间戳或其他变量文件命名,例如: screenshot-2014-05-16_12-15-37.png,这样如果你运行两次工具,它就不会覆盖以前的文件。

HTH