Како направити снимак екрана у програму Селениум ВебДривер

Преглед садржаја:

Anonim

Снимак екрана у Селениум Вебдривер

Скриншот у Селен вебдривер се користи за анализу буба. Селениум вебдривер може аутоматски да прави снимке екрана током извршавања. Али ако корисници морају сами да направе снимак екрана, морају да користе методу ТакеСцреенсхот која обавештава ВебДриве да направи снимак екрана и сачува га у Селенијуму.

У овом упутству ћете научити,

  • Снимите снимак екрана помоћу програма Селениум ВебДривер
  • Шта је Асхот АПИ?
  • Како преузети и конфигурисати Асхот АПИ?
  • Снимите снимак екрана целе странице помоћу АСхот АПИ-ја
  • Прављење снимка екрана одређеног елемента странице
  • Поређење слика помоћу АСхота

Снимите снимак екрана помоћу програма Селениум ВебДривер

Снимање екрана у селенију је поступак у 3 корака

Корак 1) Конвертујте објекат веб управљачког програма у ТакеСцреенсхот

ТакесСцреенсхот сцрСхот = ((ТакесСцреенсхот) вебдривер);

Корак 2) Позовите методу гетСцреенсхотАс да бисте креирали датотеку слике

Датотека СрцФиле = сцрСхот.гетСцреенсхотАс (ОутпутТипе.ФИЛЕ);

Корак 3) Копирајте датотеку на жељену локацију

Пример: У овом примеру ћемо направити снимак екрана хттп://демо.гуру99.цом/В4/ и сачувати га као Ц: /Тест.пнг

пакет Гуру99ТакеСцреенсхот;импорт јава.ио.Филе;импорт орг.апацхе.цоммонс.ио.ФилеУтилс;импорт орг.опенка.селениум.ОутпутТипе;импорт орг.опенка.селениум.ТакесСцреенсхот;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.фирефок.ФирефокДривер;импорт орг.тестнг.аннотатионс.Тест;јавна класа Гуру99ТакеСцреенсхот {@Тестпублиц воид тестГуру99ТакеСцреенСхот () баца изузетак {Управљачки програм за ВебДривер;Систем.сетПроперти ("вебдривер.гецко.дривер", "Ц: \\ гецкодривер.еке");дривер = нови ФирефокДривер ();// идите на урлдривер.гет ("хттп://демо.гуру99.цом/В4/");// Позив за снимање слике екранатхис.такеСнапСхот (управљачки програм, "ц: //тест.пнг");}/ *** Ова функција ће снимити снимак екрана* @парам вебдривер* @парам филеВитхПатх* @тхровс Изузетак* /јавна статичка празнина такеСнапСхот (ВебДривер вебдривер, Стринг филеВитхПатх) баца изузетак {// Претварање објекта веб управљачког програма у ТакеСцреенсхотТакесСцреенсхот сцрСхот = ((ТакесСцреенсхот) вебдривер);// Позовите методу гетСцреенсхотАс да бисте креирали датотеку сликеДатотека СрцФиле = сцрСхот.гетСцреенсхотАс (ОутпутТипе.ФИЛЕ);// Премештање датотеке слике на ново одредиштеДатотека ДестФиле = нова датотека (филеВитхПатх);// Копирај датотеку на одредиштеФилеУтилс.цопиФиле (СрцФиле, ДестФиле);}}

НАПОМЕНА: Селен верзија 3.9.0 и новија не пружа Апацхе Цоммонс ИО ЈАР. Можете их једноставно преузети овде и позвати их у свој пројекат

Шта је Асхот АПИ?

Асхот је услужни програм независне компаније Иандек који подржава Селениум ВебДривер за снимање снимака екрана. Снима снимак екрана појединачног ВебЕлемента, као и снимак екрана странице на целој страници, што је значајније од величине екрана.

Како преузети и конфигурисати Асхот АПИ?

Постоје две методе за конфигурисање Асхот АПИ-ја

  • 1.Употреба Мавен-а
  • 2. Ручно без употребе било ког алата

Да бисте конфигурисали преко Мавена:

  • Идите на хттпс://мвнрепоситори.цом/артифацт/ру.иандек.катоолс.асхот/асхот
  • За сада кликните на најновију верзију. То је 1.5.4
  • Копирајте код зависности и додајте у своју датотеку пом.кмл

  • Сачувајте датотеку и Мавен ће додати јар на вашу путању израде
  • И сад сте спремни !!!

За ручно конфигурисање без икаквог алата зависности

  1. Идите на хттпс://мвнрепоситори.цом/артифацт/ру.иандек.катоолс.асхот/асхот
  2. За сада кликните на најновију верзију. То је 1.5.4
  3. Кликните на теглу, преузмите и сачувајте на својој машини

  1. Додајте јар датотеку у путању израде:
  2. У програму Ецлипсе кликните десним тастером миша на пројекат -> идите на својства -> Изгради путању -> Библиотеке -> Додај спољне тегле
  3. Изаберите датотеку јар
  4. Пријавите се и затворите

Снимите снимак екрана целе странице помоћу АСхот АПИ-ја

Корак 1) Направите Асхот објекат и позовите метод такеСцреенсхот () ако желите само снимак екрана за страницу величине екрана.

Снимак екрана заслона = нови Асхот (). ТакеСцреенсхот (управљачки програм);

Али ако желите снимак екрана странице већи од величине екрана, позовите метод схоотингСтратеги () пре него што позовете методу такеСцреенсхот () да бисте поставили политику. Затим позовите метод такеСцреенсхот () прослеђујући веб погонитељ, на пример,

Снимак екрана = нови АСхот (). СхоотингСтратеги (СхоотингСтратегиес.виевпортПастинг (1000)). ТакеСцреенсхот (дривер);

Овде се време 1000 померања у милисекундама, па ће се за прављење снимка екрана програм померити за сваких 1000 мс.

Корак 2): Сада преузмите слику са снимка екрана и запишите је у датотеку. Тип датотеке можете да наведете као јпг, пнг итд.

ИмагеИО.врите (сцреенсхот.гетИмаге (), "јпг", нова датотека (". \\ сцреенсхот \\ фуллимаге.јпг"));

Прављење снимка екрана целе странице веће од величине екрана.

Пример: Ево примера снимања снимка екрана целе странице хттп://демо.гуру99.цом/тест/гуру99хоме/ и чувања у датотеци „сцреенсхот.јпг“.

Захваљујући употреби класе СхоотингСтратеги за Асхот АПИ, моћи ћемо да снимимо потпуну слику странице веће од величине екрана. Ево програма:

пакет Гуру99;импорт јава.ио.Филе;импорт јава.ио.ИОЕкцептион;импорт јавак.имагеио.ИмагеИО;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;импорт ру.иандек.катоолс.асхот.АСхот;импорт ру.иандек.катоолс.асхот.Сцреенсхот;импорт ру.иандек.катоолс.асхот.схоотинг.СхоотингСтратегиес;јавна класа ТестСцреенсхотУсингАсхот {публиц статиц воид маин (Стринг [] аргс) баца ИОЕкцептион {Систем.сетПроперти ("вебдривер.цхроме.дривер", "ц: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет ("хттп://демо.гуру99.цом/тест/гуру99хоме/");дривер.манаге (). виндов (). макимизе ();Снимак екрана = нови АСхот (). СхоотингСтратеги (СхоотингСтратегиес.виевпортПастинг (1000)). ТакеСцреенсхот (дривер);ИмагеИО.врите (сцреенсхот.гетИмаге (), "јпг", нова датотека ("ц: \\ ЕлементСцреенсхот.јпг"));}}

Прављење снимка екрана одређеног елемента странице

Пример: Ево примера снимања снимка екрана логотипа Гуру 99 на страници хттп://демо.гуру99.цом/тест/гуру99хоме/ и сачувајте га у датотеци „ЕлементСцреенсхот.јпг“. Ево кода:

пакет Гуру99;импорт јава.ио.Филе;импорт јава.ио.ИОЕкцептион;импорт јавак.имагеио.ИмагеИО;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;импорт ру.иандек.катоолс.асхот.АСхот;импорт ру.иандек.катоолс.асхот.Сцреенсхот;импорт ру.иандек.катоолс.асхот.схоотинг.СхоотингСтратегиес;јавна класа ТестЕлементСцреенсхотУсингАсхот {публиц статиц воид маин (Стринг [] аргс) баца ИОЕкцептион {Систем.сетПроперти ("вебдривер.цхроме.дривер", "ц: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет ("хттп://демо.гуру99.цом/тест/гуру99хоме/");дривер.манаге (). виндов (). макимизе ();// Пронађите елемент за снимање екранаВебЕлемент елемент = дривер.финдЕлемент (Би.кпатх ("// * [@ ид = \" име-места \ "] / а [1] / имг"));// Заједно са елементом проласка возача такође у методи такеСцреенсхот ().Снимак екрана = нови АСхот (). СхоотингСтратеги (СхоотингСтратегиес.виевпортПастинг (1000)). ТакеСцреенсхот (управљачки програм, елемент);ИмагеИО.врите (сцреенсхот.гетИмаге (), "јпг", нова датотека ("ц: \\ ЕлементСцреенсхот.јпг"));}}

Поређење слика помоћу АСхота

пакет Гуру99;импорт јава.авт.имаге.БуффередИмаге;импорт јава.ио.Филе;импорт јава.ио.ИОЕкцептион;импорт јавак.имагеио.ИмагеИО;импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;импорт ру.иандек.катоолс.асхот.АСхот;импорт ру.иандек.катоолс.асхот.Сцреенсхот;импорт ру.иандек.катоолс.асхот.цомпарисон.ИмагеДифф;импорт ру.иандек.катоолс.асхот.цомпарисон.ИмагеДиффер;јавна класа ТестИмагеЦомаприсон {публиц статиц воид маин (Стринг [] аргс) баца ИОЕкцептион {Систем.сетПроперти ("вебдривер.цхроме.дривер", "Ц: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет ("хттп://демо.гуру99.цом/тест/гуру99хоме/");// Пронађите елемент и направите снимак екранаВебЕлемент логоЕлемент = дривер.финдЕлемент (Би.кпатх ("// * [@ ид = \" име-места \ "] / а [1] / имг"));Снимак екрана логоЕлементСцреенсхот = нови АСхот (). ТакеСцреенсхот (управљачки програм, логоЕлемнент);// читање слике ради упоређивањаБуффередИмаге очекујеИмаге = ИмагеИО.реад (нова датотека ("Ц: \\ Гуру99лого.пнг"));БуффередИмаге ацтуалИмаге = логоЕлементСцреенсхот.гетИмаге ();// Стварање објекта ИмагеДиффер и метода позива макеДифф ()ИмагеДиффер имгДифф = нови ИмагеДиффер ();ИмагеДифф дифф = имгДифф.макеДифф (стварна слика, очекивана слика);иф (дифф.хасДифф () == труе) {Систем.оут.принтлн („Слике су исте“);} остало {Систем.оут.принтлн („Слике се разликују“);}дривер.куит ();}}

Резиме

  • Асхот АПИ је бесплатни програм Иандек-а.
  • То је услужни програм за прављење снимка екрана у програму Селениум.
  • Помаже вам да направите снимак екрана појединачног ВебЕлемента на различитим платформама попут прегледача за рачунаре, иОС Симулатор Мобиле Сафари, прегледача Андроид Емулатор.
  • Може да направи снимак екрана странице веће од величине екрана.
  • Ова функција је уклоњена у селену верзији 3, тако да је Асхот АПИ добра опција.
  • Може украсити снимке екрана.
  • Пружа поређење екрана.

Омогућено захваљујући доприносима Схрадхдха Даве-а