Перейти к содержимому

Фотография

Как сделать скриншот в Selenium WebDriver2 + C#


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Sunday8990

Sunday8990

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

Отправлено 26 сентября 2011 - 06:51

Погуглил по этой теме, нашел только что скриншот делается так:

Screenshot ss = 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;

Но то ли какой-нибудь using я пропустил, то еще что, driver не знает метода GetScreenshot().
Вот сборки которые я использовал:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium.IE;
using OpenQA.Selenium;
using System.Threading;

Подскажите, может кто сталкивался..
  • 0

#2 Sunday8990

Sunday8990

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

Отправлено 26 сентября 2011 - 09:44

Проблема решена так:

Screenshot s1 = ((ITakesScreenshot)driver).GetScreenshot();
s1.SaveAsFile("ChangedColorsWorldClock.png", System.Drawing.Imaging.ImageFormat.Png);
  • 0

#3 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 05 декабря 2011 - 13:29

А подскажите как сделать скриншот с помощью CaptureEntirePageScreenshot в Selenium 2(WebDriver)?
Буду благодарен маленькому примеру на С# или любом другом языке.
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 05 декабря 2011 - 17:54

См. коммент #2, оно как раз на C#, и делается как раз скриншот страницы (а не экрана).
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 06 декабря 2011 - 07:31

См. коммент #2, оно как раз на C#, и делается как раз скриншот страницы (а не экрана).

Просто по первому Селениуму "CaptureEntirePageScreenshot" намного легче, сразу делает скриншот и сохраняет.
Но как я понял второй Селениум данный метод не поддерживает даже в режиме совместимости (WebDriverBackedSelenium) ?
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 06 декабря 2011 - 19:43

Напишите вспомогательный метод, который будет сразу делать скриншот и сохранять :)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#7 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 07 декабря 2011 - 10:19

Напишите вспомогательный метод, который будет сразу делать скриншот и сохранять :)

Просто хотелось делать тесты максимально независимыми, при этом минимально программируя. А тут еще придется подключать дополнительную библиотеку System.Drawing.dll.

Да и зачем изобретать велосипед, если уже есть метод?
Другое дело, что судя по всему в Selenium 2 он не работает (вот именно про это я и хочу услышать подтверждение или опровержение), хотя в списке методов есть. Возможно он предназначен для режима совместимости с 1-ым, хотя у меня он почему-то не работает, выдает ошибку вроде как, что не поддерживается.
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 08 декабря 2011 - 07:44

Другое дело, что судя по всему в Selenium 2 он не работает (вот именно про это я и хочу услышать подтверждение или опровержение), хотя в списке методов есть. Возможно он предназначен для режима совместимости с 1-ым, хотя у меня он почему-то не работает, выдает ошибку вроде как, что не поддерживается.


Если имеется в виду WebDriverBackedSelenium (то есть режим эмуляции) -- да, там снятие скриншотов может не работать.
В "чистом" веб-драйвере снятие скриншотов работает, хотя и не во всех браузерах пока.
Если есть конкретные примеры (версии ОС, браузеров) -- приводите, попробуем разобраться, почему не работает.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 faDieZ

faDieZ

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Dmitry Bogatko

Отправлено 23 декабря 2011 - 16:29

Ниже приведен метод на C# для получения скриншотов страницы:

using OpenQA.Selenium.IE;
using OpenQA.Selenium;
using System.Drawing.Imaging;

public void TakeScreenshot(IWebDriver driver, string saveLocation)
{
ITakesScreenshot screenshotDriver = driver as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
screenshot.SaveAsFile(saveLocation, ImageFormat.Png);
}


Информация взята с : http://www.jimmycoll...org/blog/?p=483
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных