Как да използвам Selenium IDE със скриптове & Команди (Утвърждаване, Проверка)

Съдържание:

Anonim

Ние ще използваме уебсайта на Mercury Tours като нашето уеб приложение, което се тества. Това е онлайн система за резервация на полети, която съдържа всички елементи, от които се нуждаем за този урок. Неговият URL адрес е http://demo.guru99.com/test/newtours/ и това ще бъде нашият основен URL адрес.

Създайте скрипт чрез запис

Нека сега създадем първия си тестов скрипт в Selenium IDE, използвайки най-разпространения метод - чрез запис. След това ще изпълним нашия скрипт, използвайки функцията за възпроизвеждане.

Етап 1

  • Стартирайте Firefox и Selenium IDE.
  • Въведете стойността за нашия основен URL адрес: http://demo.guru99.com/test/newtours/.
  • Включете бутона Запис (ако все още не е включен по подразбиране).
Стъпка 2

В Firefox отидете на http://demo.guru99.com/test/newtours/. Firefox трябва да ви отведе до страницата, подобна на показаната по-долу.

Стъпка 3
  • Щракнете с десния бутон върху всяко празно място в страницата, като върху логото на Mercury Tours в горния ляв ъгъл. Това ще отвори контекстното меню на Selenium IDE. Забележка: Не щракайте върху хипервръзки обекти или изображения
  • Изберете опцията „Показване на наличните команди“.
  • След това изберете „assertTitle точно: Добре дошли: Mercury Tours.“ Това е команда, която гарантира, че заглавието на страницата е правилно.
Стъпка 4
  • В текстовото поле "Потребителско име" на Mercury Tours въведете невалидно потребителско име, "invalidUNN".
  • В текстовото поле "Парола" въведете невалидна парола, "invalidPWD".
Стъпка 5
  • Кликнете върху бутона "Вход". Firefox трябва да ви отведе до тази страница.
Стъпка 6

Изключете бутона за запис, за да спрете записа. Сега вашият скрипт трябва да изглежда като показания по-долу.

Стъпка 7

След като приключихме с нашия тестов скрипт, ще го запишем в тестов случай. В менюто File изберете "Save Test Case". Като алтернатива можете просто да натиснете Ctrl + S.

Стъпка 8
  • Изберете желаното от вас местоположение и след това кръстете тестовия случай като „Invalid_login“.
  • Щракнете върху бутона "Запазване".
Стъпка 9.

Забележете, че файлът е запазен като HTML.

Стъпка 10.

Върнете се в Selenium IDE и щракнете върху бутона Възпроизвеждане, за да изпълните целия скрипт. IDE на Selenium трябва да може да възпроизвежда всичко безупречно.

Въведение в командите на селен - селено

  • Командите на Selenese могат да имат максимум два параметъра: target и value.
  • Не се изискват параметри през цялото време. Зависи от това колко команди ще са необходими.

3 вида команди

Действия

Това са команди, които директно взаимодействат с елементите на страницата.

Пример: командата "щракване" е действие, защото вие директно взаимодействате с елемента, върху който кликвате.

Командата "type" също е действие, защото поставяте стойности в текстово поле и текстовото поле ви ги показва в замяна. Има двупосочно взаимодействие между вас и текстовото поле.

Аксесоари

Те са команди, които ви позволяват да съхранявате стойности в променлива.

Пример: командата "storeTitle" е достъп, тъй като само "чете" заглавието на страницата и я записва в променлива. Той не взаимодейства с нито един елемент на страницата.

Твърдения

Те са команди, които проверяват дали е изпълнено определено условие.

3 вида твърдения

  • Утвърждавайте . Когато команда „assert“ не успее, тестът се спира незабавно.
  • Проверете . Когато команда „проверка“ не успее, Selenium IDE регистрира тази грешка и продължава с изпълнението на теста.
  • Изчакайте . Преди да преминете към следващата команда, командите "waitFor" първо ще изчакат дадено условие да стане истина.
    • Ако условието стане вярно в рамките на периода на изчакване, стъпката преминава.
    • Ако условието не стане вярно, стъпката се проваля. Неизправността се регистрира и изпълнението на теста преминава към следващата команда.
    • По подразбиране стойността на времето за изчакване е зададена на 30 секунди. Можете да промените това в диалоговия прозорец Selenium IDE Options под раздела General.

Утвърждаване срещу потвърждение

Общи команди

Команда Брой параметри Описание
отворен 0 - 2

Отваря страница с помощта на URL адрес.

click / clickAndWait 1

Кликвания върху определен елемент.

type / typeKeys 2

Въвежда поредица от символи.

verifyTitle / assertTitle 1

Сравнява действителното заглавие на страницата с очакваната стойност.

verifyTextPresent 1

Проверява дали в страницата е намерен определен текст.

verifyElementPresent 1

Проверява наличието на определен елемент.

verifyTable 2

Сравнява съдържанието на таблица с очакваните стойности.

waitForPageToLoad 1

Спира изпълнението, докато страницата не се зареди напълно.

waitForElementPresent 1

Спира изпълнението, докато посоченият елемент не стане наличен.

Създайте скрипт ръчно с Firebug

Сега ще пресъздадем същия тест ръчно, като напишем командите. Този път ще трябва да използваме Firebug.

Етап 1
  • Отворете Firefox и Selenium IDE.
  • Въведете основния URL адрес (http://demo.guru99.com/test/newtours/).
  • Бутонът за запис трябва да е изключен.
Стъпка 2: Щракнете върху най-горния празен ред в редактора.

Въведете "отворен" в текстовото поле Команда и натиснете Enter.

Стъпка 3
  • Придвижете се до Firefox до нашия основен URL и активирайте Firebug
  • В екрана на Selenium IDE Editor изберете втория ред (реда под командата "отвори") и създайте втората команда, като напишете "assertTitle" в полето за команди.
  • Чувствайте се свободни да използвате функцията за автоматично довършване.
Стъпка 4
  • В Firebug разгънете маркера , за да покажете маркера .</li> <li>Щракнете върху стойността на маркера <title> (който е "Добре дошли: Mercury Tours") и го поставете в полето Target в редактора.</li> </ul> </td> </tr> <tr> <td><strong>Стъпка 5</strong> <ul> <li>За да създадете третата команда, щракнете върху третия празен ред в редактора и въведете "type" в текстовото поле Command.</li> <li>В Firebug кликнете върху бутона „Проверка“.</li> </ul> </td> </tr> <tr> <td>Щракнете върху текстовото поле User Name. Забележете, че Firebug автоматично ви показва HTML кода за този елемент.</td> </tr> <tr> <td><strong>Стъпка 6</strong> <p>Забележете, че текстовото поле User Name няма ID, но има атрибут NAME. Следователно ние ще използваме неговото ИМЕ като локатор. Копирайте стойността на NAME и я поставете в полето Target в Selenium IDE.</p> <p>Все още в текстовото поле Target, префикс "userName" с "name =", показващ, че IDE на Selenium трябва да насочва към елемент, чийто атрибут NAME е "userName".</p> <p>Напишете "invalidUN" в текстовото поле Value на Selenium IDE. Сега вашият тестов скрипт трябва да изглежда като изображението по-долу. Приключихме с третата команда. Забележка: Вместо невалиден UN, можете да въведете всеки друг текстов низ. Но Selenium IDE е чувствителен към малки и големи букви и вие въвеждате стойности / атрибути точно както в приложението.</p> </td> </tr> <tr> <td><strong>Стъпка 7</strong> <ul> <li>За да създадете четвъртата команда, въведете "type" в текстовото поле Command.</li> <li>Отново използвайте бутона „Проверка“ на Firebug, за да получите локатора за текстовото поле „Парола“.</li> </ul> <ul> <li> <p>Поставете атрибута NAME ("парола") в полето Target и го добавете с префикс с "name ="</p> </li> <li> <p>Въведете "invalidPW" в полето Стойност в IDE на Selenium. Сега вашият тестов скрипт трябва да изглежда като изображението по-долу.</p> </li> </ul> </td> </tr> <tr> <td><strong>Стъпка 8</strong> <ul> <li>За петата команда въведете "clickAndWait" в текстовото поле Command в Selenium IDE.</li> <li>Използвайте бутона „Проверка“ на Firebug, за да получите локатора за бутона „Вход“.</li> </ul> <ul> <li>Поставете стойността на атрибута NAME ("login") в текстовото поле Target и го добавете с префикс с "name =".</li> <li>Сега вашият тестов скрипт трябва да изглежда като изображението по-долу.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Стъпка 9:</strong> Запазете тестовия случай по същия начин, както направихме в предишния раздел.</p> <a id="menu-6"></a> <h2>Използване на бутона за намиране</h2> <p><strong>Бутонът Find в Selenium IDE се използва, за да се провери дали това, което сме поставили в текстовото поле Target, наистина е правилният елемент на UI.</strong></p> <p>Нека използваме тестовия случай Invalid_login, който създадохме в предишните раздели. Щракнете върху която и да е команда с Target запис, да речем, третата команда.</p> <p>Щракнете върху бутона Намери. Забележете, че текстовото поле User Name на страницата Mercury Tours се осветява за секунда.</p> <p>Това показва, че Selenium IDE е успял да открие и да осъществи правилен достъп до очаквания елемент. Ако бутонът Търсене намери различен елемент или изобщо няма елемент, тогава трябва да има нещо нередно във вашия скрипт.</p> <a id="menu-7"></a> <h2>Изпълнете командата</h2> <p><strong>Това ви позволява да изпълнявате всяка една команда, без да изпълнявате целия тестов случай</strong> . Просто кликнете върху реда, който искате да изпълните и след това кликнете върху „Действия> Изпълнение на тази команда“ от лентата с менюта или просто натиснете „X“ на клавиатурата.</p> <p><strong>Стъпка 1.</strong> Уверете се, че браузърът ви е на началната страница на Mercury Tours. Щракнете върху командата, която искате да изпълните. В този пример кликнете върху реда "type | userName | invalidUN".</p> <p><strong>Стъпка 2.</strong> Натиснете "X" на клавиатурата.</p> <p><strong>Стъпка 3.</strong> Наблюдавайте, че текстовото поле за потребителско име се попълва с текст "invalidUN"</p> <p><strong>Изпълнението на команди по този начин силно зависи от страницата, която Firefox показва в момента</strong> . Това означава, че ако опитате горния пример с показаната начална страница на Google вместо Mercury Tours, тогава вашата стъпка ще се провали, тъй като в началната страница на Google няма текстово поле с атрибут "userName".</p> <a id="menu-8"></a> <h2>Начална точка</h2> <p><strong>Началната точка е индикатор, който казва на Selenium IDE кои линии ще стартират изпълнението</strong> . <strong>Клавишът за бърз достъп е "S".</strong></p> <p>В горния пример възпроизвеждането ще започне на третия ред (въведете | парола | невалиден PW). <strong>Можете да имате само една начална точка в един тестов скрипт.</strong></p> <p>Началната точка е подобна на Execute Command по такъв начин, че те зависят от текущо показваната страница. Началната точка ще се провали, ако сте на грешната страница.</p> <a id="menu-9"></a> <h2>Точки на прекъсване</h2> <p>Точките на прекъсване са индикатори, които казват на Selenium IDE къде автоматично да постави на пауза теста. <strong>Клавишът за бърз достъп е "B".</strong></p> <p>Жълтото осветяване означава, че текущата стъпка е в очакване. Това доказва, че Selenium IDE е спрял изпълнението на тази стъпка. <strong>Можете да имате множество точки на прекъсване в един тестов случай.</strong></p> <a id="menu-10"></a> <h2>Стъпка</h2> <p>Тя ви позволява да изпълнявате следващи команди една по една след пауза на тестовия случай. Нека използваме сценария в предишния раздел „Точки на прекъсване“.</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Преди да щракнете върху „Стъпка“.</strong></p> <p>Тестовият случай се прави на пауза на реда "clickAndWait | вход".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>След като щракнете върху „Стъпка“.</strong></p> <p>Редът "clickAndWait | login" се изпълнява и прави пауза до следващата команда (verifyTitle | Вход: Mercury Tours).</p> <p>Забележете, че следващият ред е на пауза, въпреки че там няма точка на прекъсване. Това е основната цел на функцията Step - тя изпълнява следващите команди една по една, за да ви даде повече време за проверка на резултата след всяка стъпка.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Важни неща, които трябва да имате предвид при използване на други формати в изгледа на източника</h2> <p><strong>Selenium IDE работи добре само с HTML - други формати са все още в експериментален режим</strong> . Това е <strong>не е препоръчително</strong> да създадете или редактирате тестове с използването на други формати в Източник Вижте защото все още има много работа, която да го направи стабилен. По-долу са известните грешки от версия 1.9.1.</p> <ul> <li>Няма да можете да изпълнявате възпроизвеждане, нито да превключвате обратно към табличен изглед, освен ако не се върнете към HTML.</li> <li>Единственият начин за безопасно добавяне на команди към изходния код е чрез записването им.</li> <li>Когато модифицирате изходния код ръчно, всичко ще бъде загубено, когато преминете към друг формат.</li> <li>Въпреки че можете да запазите тестовия си случай, докато сте в изглед на източник, Selenium IDE няма да може да го отвори.</li> </ul> <p><strong>Препоръчителният начин за конвертиране на тестове на Selenese е използването на опцията „Експортиране на тестовия случай като ...“ в менюто File, а не чрез изгледа на източника.</strong></p> <a id="menu-12"></a> <h2>Обобщение</h2> <ul> <li>Тестовите скриптове могат да бъдат създадени или чрез запис или ръчно въвеждане на команди и параметри.</li> <li>Когато ръчно създавате скриптове, Firebug се използва за получаване на локатора.</li> <li>Бутонът Търсене се използва за проверка дали командата има достъп до правилния елемент.</li> <li>Изглед на таблица показва скрипт за тест в таблична форма, докато изгледът на източника го показва в HTML формат.</li> <li>Промяната на изгледа на източника в не-HTML формат все още е експериментална.</li> <li>Не използвайте изгледа на източника при създаване на тестове в други формати. Вместо това използвайте функциите за експортиране.</li> <li>Не се изискват параметри през цялото време. Зависи от командата.</li> <li>Има три вида команди:</li> <ul> <li>Действия - директно взаимодейства с елементите на страницата</li> <li>Аксесоари - "чете" свойство на елемент и го съхранява в променлива</li> <li>Утвърждения - сравнява действителна стойност с очаквана</li> </ul> <li>Твърденията имат три вида:</li> <ul> <li>Утвърждаване - при неуспех следващите стъпки вече не се изпълняват</li> <li>Проверка - при неуспех следващите стъпки все още се изпълняват.</li> <li>WaitFor - преминава, ако посоченото условие стане вярно в рамките на периода на изчакване; в противен случай ще се провали</li> </ul> <li>Най-често срещаните команди са:</li> <ul> <li>отворен</li> <li>click / clickAndWait</li> <li>type / typeKeys</li> <li>verifyTitle / assertTitle</li> <li>verifyTextPresent</li> <li>verifyElementPresent</li> <li>verifyTable</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Популярни Публикации</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8002998-offset-distance" title="Разстояние от разстояние - CSS-трикове" rel="bookmark"><img src="https://cdn.css-code.org/9819379/offset-distance_css-tricks.png.webp" loading="lazy" alt="Разстояние от разстояние - CSS-трикове" title="Разстояние от разстояние - CSS-трикове" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002998-offset-distance" title="Разстояние от разстояние - CSS-трикове" rel="bookmark">Разстояние от разстояние - CSS-трикове 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8002999-object-position" title="Обект-позиция - CSS-трикове" rel="bookmark"><img src="https://cdn.css-code.org/2967051/object-position_css-tricks.png.webp" loading="lazy" alt="Обект-позиция - CSS-трикове" title="Обект-позиция - CSS-трикове" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002999-object-position" title="Обект-позиция - CSS-трикове" rel="bookmark">Обект-позиция - CSS-трикове 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003000-object-fit" title="Обект - CSS-трикове" rel="bookmark"><img src="https://cdn.css-code.org/1152529/object-fit_css-tricks.png.webp" loading="lazy" alt="Обект - CSS-трикове" title="Обект - CSS-трикове" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003000-object-fit" title="Обект - CSS-трикове" rel="bookmark">Обект - CSS-трикове 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Най-добрите мнения за месец</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004299-5-columns-of-equal-height-super-simple-two-column-layout" title="# 5: Колони с еднаква височина: Супер просто оформление на две колони - CSS-трикове" rel="bookmark"># 5: Колони с еднаква височина: Супер просто оформление на две колони - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004300-59-embedding-audio" title="# 59: Вграждане на аудио - CSS-трикове" rel="bookmark"># 59: Вграждане на аудио - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004301-61-basic-table-styling-with-css" title="# 61: Основен стил на таблица с CSS - CSS-трикове" rel="bookmark"># 61: Основен стил на таблица с CSS - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004302-60-ajax-refreshing-rss-content" title="# 60: AJAX Опресняване на RSS съдържание - CSS-трикове" rel="bookmark"># 60: AJAX Опресняване на RSS съдържание - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004303-62-advanced-form-styling-and-functionality" title="# 62: Разширен стил и функционалност на формуляра - CSS-трикове" rel="bookmark"># 62: Разширен стил и функционалност на формуляра - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004304-63-on-screencasting" title="# 63: На екранно излъчване - CSS-трикове" rel="bookmark"># 63: На екранно излъчване - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004305-58-html-and-css-the-very-basics" title="# 58: HTML и CSS - МНОГОТО Основи - CSS-трикове" rel="bookmark"># 58: HTML и CSS - МНОГОТО Основи - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004306-66-table-styling-2-fixed-header-and-highlighting" title="# 66: Стайлинг на таблица 2, Фиксирана заглавка и подчертаване - CSS-трикове" rel="bookmark"># 66: Стайлинг на таблица 2, Фиксирана заглавка и подчертаване - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004307-65-advanced-uses-for-custom-fields-in-wordpress" title="# 65: Разширено използване на персонализирани полета в WordPress - CSS-трикове" rel="bookmark"># 65: Разширено използване на персонализирани полета в WordPress - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004308-64-building-a-photo-gallery" title="# 64: Изграждане на фотогалерия - CSS-трикове" rel="bookmark"># 64: Изграждане на фотогалерия - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004309-191-learn-by-doing-cube-css" title="# 191: Научете, като правите: CUBE CSS - CSS-трикове" rel="bookmark"># 191: Научете, като правите: CUBE CSS - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004310-67-jquery-part-3-image-title-plugin" title="# 67: jQuery Част 3 - Приставка за заглавие на изображението - CSS-трикове" rel="bookmark"># 67: jQuery Част 3 - Приставка за заглавие на изображението - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004312-6-tools-of-the-trade" title="# 6: Инструменти на търговията - CSS-трикове" rel="bookmark"># 6: Инструменти на търговията - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004314-68-think-geek-background-fade-technique" title="# 68: Think Geek Background Fade Technique - CSS-трикове" rel="bookmark"># 68: Think Geek Background Fade Technique - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004315-70-random-pet-peeves" title="# 70: Случайни домашни любимци - CSS-трикове" rel="bookmark"># 70: Случайни домашни любимци - CSS-трикове</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Топ Статии</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226151-29-best-itsm-tools-in-2021" title="29 НАЙ-ДОБРИ ITSM инструменти през 2021г" rel="bookmark"><img src="https://cdn.css-code.org/4646865/29_best_itsm_tools_in_2021.png.webp" loading="lazy" alt="29 НАЙ-ДОБРИ ITSM инструменти през 2021г" title="29 НАЙ-ДОБРИ ITSM инструменти през 2021г" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226151-29-best-itsm-tools-in-2021" title="29 НАЙ-ДОБРИ ITSM инструменти през 2021г" rel="bookmark">29 НАЙ-ДОБРИ ITSM инструменти през 2021г 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226152-difference-between-html-and-html5" title="Разлика между HTML и HTML5" rel="bookmark"><img src="https://cdn.css-code.org/5047549/difference_between_html_and_html5.png.webp" loading="lazy" alt="Разлика между HTML и HTML5" title="Разлика между HTML и HTML5" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226152-difference-between-html-and-html5" title="Разлика между HTML и HTML5" rel="bookmark">Разлика между HTML и HTML5 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226153-big-data-testing-tutorial-what-is-strategy-how-to-test-hadoop" title="Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop" rel="bookmark"><img src="https://cdn.css-code.org/1833879/big_data_testing_tutorial_what_is-_strategy-_how_to_test_hadoop.png.webp" loading="lazy" alt="Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop" title="Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226153-big-data-testing-tutorial-what-is-strategy-how-to-test-hadoop" title="Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop" rel="bookmark">Урок за тестване на големи данни: Какво е, стратегия, как да тествате Hadoop 2025</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Популярни Публикации</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004219-175-7-things-to-know-about-webflow" title="# 175: 7 Неща, които трябва да знаете за Webflow - CSS-трикове" rel="bookmark"># 175: 7 Неща, които трябва да знаете за Webflow - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004220-174-using-local-overrides-in-devtools" title="# 174: Използване на локални замествания в DevTools - CSS-трикове" rel="bookmark"># 174: Използване на локални замествания в DevTools - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004221-17-sliding-doors-button" title="# 17: Бутон за плъзгащи се врати - CSS-трикове" rel="bookmark"># 17: Бутон за плъзгащи се врати - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004222-177-local-wordpress-development-to-production-workflow" title="# 177: Локално разработване на WordPress за производствен работен процес - CSS-трикове" rel="bookmark"># 177: Локално разработване на WordPress за производствен работен процес - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004223-176-working-with-framer-motion" title="# 176: Работа с Framer Motion - CSS-трикове" rel="bookmark"># 176: Работа с Framer Motion - CSS-трикове</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Избор На Редактора</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003445-85-blog-post-view-single-php-in-wordpress" title="# 85: Преглед на публикация в блога (single.php) в WordPress - CSS-трикове" rel="bookmark"># 85: Преглед на публикация в блога (single.php) в WordPress - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003447-84-moving-footer-into-wordpress" title="# 84: Преместване на долен колонтитул в WordPress - CSS-трикове" rel="bookmark"># 84: Преместване на долен колонтитул в WordPress - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003448-88-building-the-gallery-bar" title="# 88: Изграждане на лентата на галерията - CSS-трикове" rel="bookmark"># 88: Изграждане на лентата на галерията - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003449-86-photoshopping-the-gallery" title="# 86: Фотошопиране на галерията - CSS-трикове" rel="bookmark"># 86: Фотошопиране на галерията - CSS-трикове</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003450-89-tweaking-the-gallery-bar" title="# 89: Промяна на лентата на галерията - CSS-трикове" rel="bookmark"># 89: Промяна на лентата на галерията - CSS-трикове</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Топ Статии</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224578-c-for-loop-with-example" title="C ++ за Loop с ПРИМЕР" rel="bookmark">C ++ за Loop с ПРИМЕР</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224579-c-hello-world-program-with-code-explanation" title="Програма C ++ Hello World с обяснение на кода" rel="bookmark">Програма C ++ Hello World с обяснение на кода</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224581-c-strings-strcpy-strcat-strlen-strcmp-examples" title="С ++ низове: strcpy (), strcat (), strlen (), strcmp () ПРИМЕРИ" rel="bookmark">С ++ низове: strcpy (), strcat (), strlen (), strcmp () ПРИМЕРИ</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224582-c-exception-handling-try-catch-throw-example" title="Обработка на изключения на C ++: Опитайте, хванете, хвърлете Пример" rel="bookmark">Обработка на изключения на C ++: Опитайте, хванете, хвърлете Пример</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224583-c-switch-case-statement-with-example" title="Декларация за случай на превключване на C ++ с ПРИМЕР" rel="bookmark">Декларация за случай на превключване на C ++ с ПРИМЕР</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright bg.css-code.org, 2025 Юли | <a href="https://bg.css-code.org/about-site" title="За сайта">За сайта</a> | <a href="https://bg.css-code.org/contacts" title="Контакти">Контакти</a> | <a href="https://bg.css-code.org/privacy-policy" title="Декларация за поверителност">Декларация за поверителност</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>