Добрый день! Совсем недавно начал миграцию с Selenium 1 на Selenium 2,а именно WebDriver.
Столкнулся с множеством проблем, но пока меня интересует сохранение скриншотов.
Был бы очень презнателен если бы кто-нибуть дал пример кода как это делать в WB.(Пишу тесты на JAWA)
НА одном из форумов нашел строку:
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
Врезал в код - ни на что не ругается, а что дальше делать не пойму.
Всем за ранее спасибо
Selenium 2.0 - как снять скриншот
Автор testbom, 30 июл 2012 11:42
Сообщений в теме: 4
#1
Отправлено 30 июля 2012 - 11:42
#2
Отправлено 30 июля 2012 - 11:50
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
#3
Отправлено 30 июля 2012 - 11:59
Спасибо большое!!
#4
Отправлено 04 марта 2013 - 11:03
Присоединяюсь.Спасибо большое!!
#5
Отправлено 04 марта 2013 - 16:44
В какой-то момент стало нехватать возможности получить снимок всех экранов (а не только содержимого текущего окна браузера).
Тут мне помог код из проекта, который нашел на хабре:
см. https://bitbucket.or...rGn/screenpaste
ScreenPaste / ScreenPaste / Screenshot.cs
Адаптировал этот код в свой проект (встроил cнятие снимка текущей страницы и снимков всех экранов при каждом возникновении исключения).
В коде ниже, метод TakeScreenShot работает также как написано в комментариях выше.
А метод TakeAllScreen работает на основе кода из проекта, указанного по ссылке на bitbucket:
Тут мне помог код из проекта, который нашел на хабре:
см. https://bitbucket.or...rGn/screenpaste
ScreenPaste / ScreenPaste / Screenshot.cs
Адаптировал этот код в свой проект (встроил cнятие снимка текущей страницы и снимков всех экранов при каждом возникновении исключения).
В коде ниже, метод TakeScreenShot работает также как написано в комментариях выше.
А метод TakeAllScreen работает на основе кода из проекта, указанного по ссылке на bitbucket:
public class SeleniumHelperException : Exception
{
protected static List<string> TakeScreenShots()
{
List<string> listPathes = new List<string>();
if (SeleniumRunner.Host != null)
{
ICamera camera = SeleniumRunner.Host.Camera;
listPathes = camera.TakeAllScreen();
}
return listPathes;
}
protected static string TakeScreenShotCurrentPage()
{
if (SeleniumRunner.Host != null)
{
ICamera camera = SeleniumRunner.Host.Camera;
return camera.TakeScreenshot();
}
else
{
return null;
}
}
protected static string AddScreenShotPathToMessage(string message = null)
{
string messageWithScreenShot = message;
string screenShotPath = TakeScreenShotCurrentPage();
if (screenShotPath != null)
{
if (message != null)
{
messageWithScreenShot = String.Format("{0}. ScreenShots: [{1}]", message, screenShotPath);
}
else
{
messageWithScreenShot = String.Format("ScreenShots : [{0}]", screenShotPath);
}
foreach (String path in TakeScreenShots())
{
messageWithScreenShot += String.Format(", [{0}]", path);
}
}
return messageWithScreenShot;
}
public SeleniumHelperException()
: base(AddScreenShotPathToMessage())
{
}
public SeleniumHelperException(string message)
: base(AddScreenShotPathToMessage(message))
{
}
public SeleniumHelperException(string message, Exception innerException)
: base(AddScreenShotPathToMessage(message), innerException)
{
}
}
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

