Best JavaScript code snippet using qawolf
sticker.ts
Source:sticker.ts
1import { HandlingData } from '../typings';2import { ClientMessage } from '../Base/Scripts/client';3import ffmpeg from "fluent-ffmpeg";4import * as fs from "fs";5import { proto } from "@adiwajshing/baileys";67export var Sticker: void = globalThis.Client.on("sticker", async (data: HandlingData, Cli: ClientMessage) => {8 const { from, id, media, args, isGambar, isQuotedImage, isVideo, isQuotedVideo, isQuotedSticker } = data;9 if (isGambar || isQuotedImage) 10 try {11 await Cli.reply(from, `*â* Mohon tunggu sebentar bot sedang melaksanakan perintah`, id)12 const Sticker: Buffer = await Cli.respon.stickerWhatsappFormatterWithCropped(await Cli.decryptMedia(media as proto.WebMessageInfo), /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[0] : undefined , /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[1] : undefined)13 return void await Cli.sendFile(from, Sticker, { quoted: id})14 } catch (err) {15 return void Cli.reply(from, "*ãâã* Gagal membuat sticker harap coba lagi lain waktu", id)16 }17 else if (isVideo || isQuotedVideo)18 try {19 await Cli.reply(from, `*â* Mohon tunggu sebentar bot sedang melaksanakan perintah`, id)20 let LocExif: string = args[0] ? Cli.respon.autoPath() : "./library/storage/temp/Ra_default_Exif"21 if (!fs.existsSync(LocExif + ".exif")) await Cli.respon.createExif(LocExif, /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[0] : args.join(" ") , /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[1] : undefined)22 await Cli.respon.convertToWebp(await Cli.decryptMedia(media as proto.WebMessageInfo, true) as string).then(async (values: string) => {23 await Cli.sendFile(from, values, { quoted: id})24 await Cli.respon.Tunggu(2500)25 if (fs.existsSync(LocExif + ".exif")) fs.unlinkSync(LocExif + ".exif")26 if (fs.existsSync(values)) fs.unlinkSync(values)27 }).catch ((err) => {28 if (fs.existsSync(LocExif + ".exif")) fs.unlinkSync(LocExif + ".exif")29 console.log(err)30 return void Cli.reply(from, "*ãâã* Gagal membuat sticker harap coba lagi lain waktu", id)31 })32 33 } catch (err) {34 throw new Error(String(err))35 }36 else if (isQuotedSticker)37 try {38 await Cli.reply(from, `*â* Mohon tunggu sebentar bot sedang melaksanakan perintah`, id)39 let LocExif: string = args[0] ? Cli.respon.autoPath() : "./library/storage/temp/Ra_default_Exif"40 if (!fs.existsSync(LocExif + ".exif")) await Cli.respon.createExif(LocExif, /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[0] : args.join(" ") , /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[1] : undefined)41 return void await Cli.respon.createWmSticker(await Cli.decryptMedia(media as proto.WebMessageInfo, true) as string, LocExif + ".exif").then(async (values: string) => {42 await Cli.sendFile(from, values, { quoted: id })43 await Cli.respon.Tunggu(2500)44 if (args[0] && fs.existsSync(LocExif + ".exif")) fs.unlinkSync(LocExif + ".exif")45 if (fs.existsSync(values)) fs.unlinkSync(values)46 }).catch(() => {47 if (args[0] && fs.existsSync(LocExif + ".exif")) fs.unlinkSync(LocExif + ".exif")48 })49 } catch (err) {50 throw new Error(String(err))51 }52 else 53 return void Cli.reply(from, "*ãâã* Maaf kak Harap Kirim/Reply Gambar/Video yang ingin di ubah menjadi sticker", id)54 55}, { event: ["sticker <media>"], tag: "converter", command: ["s", "sticker", "stiker", "stickergif", "stikergif", "sgif"], isMedia: true, loading: false, withImghelpers: "https://bit.ly/39026d3", helpers: globalThis.Lang.HelpSticker() })5657export var sticker2: void = globalThis.Client.on("Sticker2", async (data: HandlingData, Cli: ClientMessage) => {58 const { from, id, media, args, isGambar, isQuotedImage, isVideo, isQuotedVideo, isQuotedSticker, createAPI } = data;59 var { OpenWaSticker } = createAPI;60 let getWm1: string | undefined = /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[0] : undefined;61 let getWm2: string | undefined = /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[1] : undefined;62 if (isGambar || isQuotedImage || isVideo || isQuotedVideo) {63 await Cli.wait()64 return void await OpenWaSticker((await Cli.decryptMedia(media as proto.WebMessageInfo)), { author: getWm2, pack: getWm1, keepScale: true }).then(async (value) => {65 return void await Cli.sendFile(from, value, { quoted: id });66 }).catch(() => Cli.reply(from, "*ãâã* Gagal membuat sticker harap coba lagi lain waktu", id))67 } else {68 return void await Cli.reply(from, "*ãâã* Maaf kak Harap Kirim/Reply Gambar/Video yang ingin di ubah menjadi sticker", id)69 }70}, { event: ["sticker2 <media>"], tag: "converter", command: ["s2", "sticker2", "stiker2", "stickergif2", "stikergif2", "sgif2"], isMedia: true })7172export var Stickernocrop: void = globalThis.Client.on("sticker no crop", async (data: HandlingData, Cli: ClientMessage) => {73 const { from, id, media, args, isGambar, isQuotedImage, isVideo, isQuotedVideo, isQuotedSticker, createAPI } = data;74 var { OpenWaSticker } = createAPI;75 let getWm1: string | undefined = /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[0] : undefined;76 let getWm2: string | undefined = /\|/gi.test(args.join(" ")) ? args.join(" ").split("|")[1] : undefined;77 if (isGambar || isQuotedImage || isVideo || isQuotedVideo) {78 await Cli.wait()79 return void await OpenWaSticker((await Cli.decryptMedia(media as proto.WebMessageInfo)), { author: getWm2, pack: getWm1, keepScale: false }).then(async (value) => {80 return void await Cli.sendFile(from, value, { quoted: id });81 }).catch(() => Cli.reply(from, "*ãâã* Gagal membuat sticker harap coba lagi lain waktu", id))82 } else {83 return void await Cli.reply(from, "*ãâã* Maaf kak Harap Kirim/Reply Gambar/Video yang ingin di ubah menjadi sticker", id)84 }85}, { event: ["stickernocrop <media>"], tag: "converter", command: ["stickernocrop", "stikernocrop","snocrop"], isMedia: true})8687export var Triggereder: void = globalThis.Client.on("triggered", async function (data: HandlingData, Cli: ClientMessage) {88 const { from, id, media, isGambar, isQuotedImage, isQuotedSticker, isQuotedStickerGif } = data;89 if (isGambar || isQuotedImage) {90 await Cli.wait()91 var { Triggered, autoPath, convertWebpNoCrop, Tunggu } = Cli.respon;92 let createGif: string = await Triggered(await Cli.decryptMedia(media as proto.WebMessageInfo, true) as string, autoPath("gif"));93 return void await convertWebpNoCrop(createGif).then(async (values: string) => {94 await Cli.sendFile(from, values, { quoted: id })95 if (fs.existsSync(createGif)) fs.unlinkSync(createGif)96 await Tunggu(2000)97 if (fs.existsSync(values)) fs.unlinkSync(values)98 return;99 }).catch (() => {100 if (fs.existsSync(createGif)) fs.unlinkSync(createGif)101 return void Cli.reply(from, "*ãâã* Mohon maaf kak bot gagal membuat Sticker", id)102 })103 } else if (isQuotedSticker) {104 if (isQuotedStickerGif) return Cli.reply(from, "*ãâã* Mohon maaf kak Fitur ini tidak support untuk sticker gif", id)105 let Input: string = await Cli.decryptMedia(media as proto.WebMessageInfo, true) as string;106 let Output: string = Cli.respon.autoPath("png")107 return void ffmpeg(Input)108 .on('error', function () {109 if (fs.existsSync(Input)) fs.unlinkSync(Input)110 if (fs.existsSync(Output)) fs.unlinkSync(Output)111 return Cli.reply(from, "*ãâã* Mohon maaf kak Fitur Bot gagal membuat Sticker Trigger", id)112 })113 .on("end", async function () {114 if (fs.existsSync(Input)) fs.unlinkSync(Input)115 let createGif: string = await Triggered(Output, autoPath("gif"));116 return void await convertWebpNoCrop(createGif).then(async (values: string) => {117 await Cli.sendFile(from, values, { quoted: id })118 if (fs.existsSync(createGif)) fs.unlinkSync(createGif)119 if (fs.existsSync(Output)) fs.unlinkSync(Output)120 await Tunggu(2000)121 if (fs.existsSync(values)) fs.unlinkSync(values)122 return;123 }).catch (() => {124 if (fs.existsSync(createGif)) fs.unlinkSync(createGif)125 if (fs.existsSync(Output)) fs.unlinkSync(Output)126 return void Cli.reply(from, "*ãâã* Mohon maaf kak bot gagal membuat Sticker", id)127 })128 })129 .saveToFile(Output)130 } else {131 return void Cli.reply(from, "*ãâã* Mohon Maaf kak kirim / reply Gambar untuk membuat sticker trigger", id)132 }
...
application.js
Source:application.js
1$(function() {2 // Cache some DOM references3 var previewImage = $('#preview-image')[0];4 var $calculatorElt = $('#calculator');5 var $loading = $('.loading');6 var $recordIcon = $('#record-icon');7 var $desmosURL = $('#desmos-url');8 var $importForm = $('#import-form');9 var $intervalSelect = $('#interval-select');10 var $widthInput = $('#width-input');11 var $heightInput = $('#height-input');12 var $saveButton = $('#save-button');13 var $saveIcon = $('#save-icon');14 var $inputElements = $('input');15 var $snapshotButton = $('#snapshot-button');16 var $resetButton = $('#reset-button');17 var $processingText = $('#processing');18 // Initialize some variables19 var thumbFrames = [];20 var fullFrames = [];21 var recording = false;22 var interval = 0.1;23 var fullWidth = 200;24 var fullHeight = 200;25 var pollTimeout;26 // Continually query the graph state...27 // If it's changed since the last check, push a new frame into the both frame arrays28 var poll = function() {29 if (recording) {30 var newThumb = calc.screenshot({width: 200, height: 200});31 if (!thumbFrames.length || thumbFrames[thumbFrames.length - 1].src !== newThumb) {32 pushFrames();33 }34 pollTimeout = setTimeout(poll, 1);35 }36 };37 // Toggle the recording state38 // If we're starting, reset everything...otherwise we're done, so make the GIF 39 var setRecordingState = function() {40 recording = !recording;41 if (recording) {42 reset();43 previewImage.src = '/images/recording.gif';44 $inputElements.prop('disabled', true);45 poll();46 } else {47 clearTimeout(pollTimeout);48 createGIF();49 $inputElements.prop('disabled', false);50 }51 $recordIcon.toggleClass('glyphicon-record').toggleClass('glyphicon-stop');52 $resetButton.toggleClass('disabled');53 };54 // Use the wonderful GifShot library to create the animated images55 // http://yahoo.github.io/gifshot/56 var createGIF = function() {57 if (!thumbFrames.length) return;58 previewImage.src = '/images/processing_lg.gif';59 $processingText.show();60 $saveButton.addClass('disabled');61 $saveIcon.removeClass('glyphicon-floppy-save').addClass('glyphicon-floppy-disk');62 gifshot.createGIF({63 'images': thumbFrames,64 'interval': interval65 }, function(obj) {66 if (!obj.error) {67 previewImage.src = obj.image;68 }69 });70 gifshot.createGIF({71 'images': fullFrames,72 'interval': interval,73 'gifWidth': fullWidth,74 'gifHeight': fullHeight75 }, function(obj) {76 if (!obj.error) {77 $saveButton.attr('download', 'gifsmos.gif')78 $saveButton[0].href = obj.image;79 $saveButton.removeClass('disabled');80 $saveIcon.removeClass('glyphicon-floppy-disk').addClass('glyphicon-floppy-save');81 $processingText.hide();82 }83 });84 };85 // Take thumb and full-size screenshots and push them to the image arrays86 var pushFrames = function() {87 var thumbImage = document.createElement('img');88 thumbImage.src = calc.screenshot({width: 200, height: 200});89 thumbFrames.push(thumbImage);90 var fullImage = document.createElement('img');91 fullImage.src = calc.screenshot({width: fullWidth, height: fullHeight});92 fullFrames.push(fullImage);93 };94 // Manually take a snapshot to add a single frame to the GIF95 var addFrame = function() {96 pushFrames();97 if (!recording) {98 //for some reason, this needs to be in a timeout in firefox & safari99 setTimeout(createGIF, 100);100 }101 };102 // Reset all the variables to their initial states103 var reset = function() {104 thumbFrames = [];105 fullFrames = [];106 previewImage.src = '/images/preview.png';107 $saveButton[0].href = '';108 $saveButton.addClass('disabled');109 $saveIcon.removeClass('glyphicon-floppy-save').addClass('glyphicon-floppy-disk');110 $processingText.hide();111 };112 // Alert the user when they try to import a bad URL113 var alertBadUrl = function() {114 $('.alert-danger').remove();115 var $alertDiv = $("<div class='alert alert-danger fade in'><a class='close' href='#' data-dismiss='alert' role='alert')>×</a><strong>Whoops!</strong> ¯\\_(ã)_/¯ Looks like there isn\'t a graph there...check your URL.</div>");116 $importForm.after($alertDiv);117 $alertDiv.fadeIn();118 };119 // Import a saved Desmos graph from a URL120 var importGraph = function() {121 var url = $desmosURL.val();122 if (!url) return;123 $.getJSON(url).done(function(res) {124 calc.setState(JSON.stringify(res.state));125 $desmosURL.val('');126 $('.alert-danger').remove();127 }).fail(function() {128 alertBadUrl();129 });130 };131 // Attach event handlers132 $('#record-button').click(setRecordingState);133 $('.import-button').click(importGraph);134 $snapshotButton.click(addFrame);135 $resetButton.click(function() {136 reset();137 });138 $importForm.submit(function(e) {139 e.preventDefault();140 importGraph();141 $desmosURL.blur();142 });143 $intervalSelect.change(function() {144 interval = parseFloat($(this).val());145 if (!recording) createGIF();146 });147 $widthInput.change(function() {148 fullWidth = parseInt($(this).val(), 10);149 });150 $heightInput.change(function() {151 fullHeight = parseInt($(this).val(), 10);152 });153 $('.btn').click(function() {154 $(this).blur();155 });156 // Add tooltips to some UI elements157 $('[data-toggle="tooltip"]').tooltip({container: 'body'});158 // Add the Calculator instance to the page159 var calc = Desmos.Calculator($calculatorElt[0]);160 $loading.remove();...
gif.js
Source:gif.js
...20 }21 var interval = document.getElementById("interval").value;2223 watermark();24 createGif(imageLinks, interval);25}2627function updateGif(){28 var loaderImg = `<img src="/styles/ajax-loader.gif">`;29 $('#gifApp').attr('onclick', '');30 $("#gifApp").empty();31 $("#gif #gifContent #gifApp").append(loaderImg);32 var interval = document.getElementById("interval").value;33 var timeWatermarkOption = document.getElementById("timeWatermarkOption");34 var URIWatermarkOption = document.getElementById("URIWatermarkOption");3536 if(timeWatermarkOption.checked == true && URIWatermarkOption.checked == true) {37 createGif(timeAndURIStampedImages,interval);38 } else if(timeWatermarkOption.checked == true) {39 createGif(timeStampedImages,interval);40 } else if(URIWatermarkOption.checked == true) {41 createGif(URIStampedImages,interval);42 } else{43 createGif(imageLinks, interval);44 }45}464748function watermark(){ 49 var URI = $("#uriIP").val();50 URI = URI.split(',');51 var regexForPort = /(\/http:\/\/.*):(\80*)/g;52 var regexForHTTPS = /(https?:\/\/)/gi;53 for(var i = 0; i<imagesData_IG.length; i++)54 {55 var img = new Image();56 img.src = imageLinks[i];5758 var timeStamp = imagesData_IG[i].event_display_date;59 watermarkImage(img,timeStamp,i,timeStampedImages);6061 var link = imagesData_IG[i].event_link;62 link = link.replace(":80","");63 64 for(var j = 0; j<URI.length; j++)65 {66 var uri = URI[j];67 uri = uri.replace(regexForHTTPS,"");68 uri = uri.replace(/\/$/, "");6970 if(link.indexOf(uri) > 0)71 {72 var URIStamp = uri;73 URIStamp.replace(/\s/g,"");74 watermarkImage(img,URIStamp,i,URIStampedImages);7576 var timeAndURIStamp = URIStamp + "\n" + imagesData_IG[i].event_display_date;77 watermarkImage(img,timeAndURIStamp,i,timeAndURIStampedImages);78 }79 }80 }81}828384function watermarkImage(elemImage, text, counter,array) {85 var testImage = new Image();86 testImage.onload = function() {87 var h = testImage.height, w = testImage.width, img = new Image();88 89 img.onload = function() {90 91 var canvas = Object.assign(document.createElement('canvas'), {width: w, height: h});92 var ctx = canvas.getContext('2d');93 ctx.drawImage(testImage, 0, 0);94 ctx.drawImage(img, 0, 0);95 96 try {97 elemImage.src = canvas.toDataURL('image/png');98 array[counter] = elemImage.src;99 //console.log(elemImage.src);100 }101 catch (e) {102 console.error('Cannot watermark image with text:', {src: elemImage.src, text: text, error: e});103 }104 };105 106 img.src = 'data:image/svg+xml;base64,' + window.btoa(107 '<svg xmlns="http://www.w3.org/2000/svg" height="' + h + '" width="' + w + '">' +108 '<foreignObject width="100%" height="100%">' +109 '<div xmlns="http://www.w3.org/1999/xhtml">' +110 '<div style="position: absolute;' +111 'left: 0;' +112 'bottom: 0;' +113 'font-family: Tahoma;' +114 'font-size: 30pt;' +115 'background: #000;' +116 'color: #fff;' +117 'padding: 0.25em;' +118 'border-radius: 0.25em;' +119 'opacity: 0.6;' +120 'margin: 0 0.125em 0.125em 0;' +121 '">' + text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") + '</div>' +122 '</div>' +123 '</foreignObject>' +124 '</svg>'125 );126 };127 testImage.src = elemImage.src;128}129130131function createGif(image, interval)132{133 gifshot.createGIF({134 gifWidth: 1024,135 gifHeight: 768,136 interval: interval,137 numFrames: 10,138 images: image,139 frameDuration: 1,140 fontWeight: 'normal',141 fontSize: '16px',142 fontFamily: 'sans-serif',143 fontColor: '#ffffff',144 textAlign: 'center',145 textBaseline: 'bottom',
...
logic.js
Source:logic.js
1//wait for page to load completely before doing anything2$(document).ready(function () {3 // create a new button with value and label === to what the user input4 function createButton() {5 var userInput = $(".searchBar").val().trim();6 var newButton = $('<button>').append(userInput);7 newButton.css('margin-right', '3px');8 newButton.attr('id', userInput);9 newButton.addClass("buttonClick")10 $('.buttonBox').append(newButton);11 };12 function GIFGetter() {13 // the id of the item clicked = what we search GIPHY for14 var searchTerm = $(this).attr('id');15 // grab data16 $('.responsesBox').empty();17 queryURL = "https://api.giphy.com/v1/gifs/search?q=" + searchTerm + "&api_key=8YFcTyyCHtCNjQVi55eFHpokpZSNe5eX&limit=10";18 $.ajax({ url: queryURL, method: "GET" })19 .then(function (response) {20 console.log(response)21 for (var i = 0; i < (response.data).length; i++) {22 // making it a bit quicker to get data out of response23 var result = response.data[i];24 // variables to make HTML elements25 var createGif = $("<img>");26 var rating = $("<p>");27 // filling in variables with data to use for toggling onclick28 static = true;29 staticGIF = result.images.fixed_height_still.url;30 animateGIF = result.images.fixed_height.url;31 // put rating in rating variable32 rating.text("GIF rating: " + (result.rating).toUpperCase());33 // make source of img the still Gif34 35 createGif.attr('data-state', 'still');36 createGif.attr('data-still', staticGIF);37 createGif.attr('data-animate', animateGIF);38 createGif.attr("src", createGif.attr('data-still'));39 // adding a class to grab when toggling40 createGif.addClass("gifToggle");41 // printing to screen42 $(".responsesBox").append(createGif);43 $('.responsesBox').append(rating);44 console.log(createGif);45 };46 });47 };48 function Toggler() {49 var state = $(this).attr('data-state');50 if (state === 'still') {51 $(this).attr('src', $(this).attr('data-animate'));52 $(this).attr('data-state', 'animate');53 }54 else if (state === 'animate') {55 $(this).attr('src', $(this).attr('data-still'));56 $(this).attr('data-state', 'still');57 };58 };59 // onclick to create a button60 $(".CreateButton").on("click", createButton);61 // onclicks on the page, all items that have the class '.buttonClick', run the function GIFGetter();62 $(document).on("click", ".buttonClick", GIFGetter);63 $(document).on("click", ".gifToggle", Toggler);...
Using AI Code Generation
1const { createGif } = require("qawolf");2const { launch } = require("qawolf");3const browser = await launch();4const context = await browser.newContext();5const page = await context.newPage();6await page.fill("input[name=q]", "qawolf");7await page.press("input[name=q]", "Enter");8await createGif({ browser, page });9await browser.close();10const { createGif } = require("qawolf");11const { launch } = require("qawolf");12const browser = await launch();13const context = await browser.newContext();14const page = await context.newPage();15await page.fill("input[name=q]", "qawolf");16await page.press("input[name=q]", "Enter");17await createGif({ browser, page });18await browser.close();19const { createGif } = require("qawolf");20const { launch } = require("qawolf");21const browser = await launch();22const context = await browser.newContext();23const page = await context.newPage();24await page.fill("input[name=q]", "qawolf");25await page.press("input[name=q]", "Enter");26await createGif({ browser, page });27await browser.close();28const { createGif } = require("qawolf");29const { launch } = require("qawolf");30const browser = await launch();31const context = await browser.newContext();32const page = await context.newPage();33await page.fill("input[name=q]", "qawolf");34await page.press("input[name=q]", "Enter");35await createGif({ browser, page });36await browser.close();37const { createGif } = require("qawolf");38const { launch } = require("qawolf");39const browser = await launch();40const context = await browser.newContext();41const page = await context.newPage();42await page.fill("input[name=q]", "qawolf");43await page.press("input[name
Using AI Code Generation
1const { createGif } = require('qawolf');2const createGif = async () => {3 const browser = await qawolf.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.click('text=Google apps');7 await page.click('a:has-text("Gmail")');8 await page.fill('input[type="email"]', '
Using AI Code Generation
1const { createGif } = require('qawolf');2const { createVideo } = require('qawolf');3const { createConfig } = require('qawolf');4const { createBrowser } = require('qawolf');5const { create } = require('qawolf');6const { launch } = require('qawolf');7const { createActions } = require('qawolf');8const { createAction } = require('qawolf');9const { createPage } = require('qawolf');10const { createBrowserContext } = require('qawolf');11const { createDevice } = require('qawolf');12const { createDeviceDescriptor } = require('qawolf');13const { createDeviceDescriptors } = require('qawolf');14const { createPage } = require('qawolf');15const { createBrowserContext } = require('qawolf');16const { createDevice } = require('qawolf');17const { createDeviceDescriptor } = require('qawolf');18const { createDeviceDescriptors } = require('qawolf');19const { createPage } = require('qawolf');20const { createBrowserContext } = require('qawolf');21const { createDevice } = require('q
Using AI Code Generation
1const qawolf = require("qawolf");2const path = require("path");3const fs = require("fs");4const { chromium } = require("playwright-chromium");5const browser = await chromium.launch();6const context = await browser.newContext();7const page = await context.newPage();8await qawolf.createGif(page, {9 path: path.join(__dirname, "test.gif"),10});11await page.close();12await context.close();13await browser.close();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!