Добрый день! Совсем недавно начал миграцию с 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 анонимных